middle-end/94479 - fix gimplification of address When gimplifying an address operand we may expose an indirect ref via DECL_VALUE_EXPR for example. This is dealt with in the code already but it fails to consider that INDIRECT_REFs get gimplified to MEM_REFs. Fixed which makes the ICE observed on x86_64-netbsd go away. 2020-04-07 Richard Biener <rguenther@suse.de> PR middle-end/94479 * gimplify.c (gimplify_addr_expr): Also consider generated MEM_REFs. * gcc.dg/torture/pr94479.c: New testcase. Fixes -fstack-check ICE when building devel/git-base.
This commit is contained in:
parent
f247c48be2
commit
15604ae0df
4
external/gpl3/gcc/dist/gcc/gimplify.c
vendored
4
external/gpl3/gcc/dist/gcc/gimplify.c
vendored
@ -6072,7 +6072,9 @@ gimplify_addr_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
|
||||
|
||||
/* For various reasons, the gimplification of the expression
|
||||
may have made a new INDIRECT_REF. */
|
||||
if (TREE_CODE (op0) == INDIRECT_REF)
|
||||
if (TREE_CODE (op0) == INDIRECT_REF
|
||||
|| (TREE_CODE (op0) == MEM_REF
|
||||
&& integer_zerop (TREE_OPERAND (op0, 1))))
|
||||
goto do_indirect_ref;
|
||||
|
||||
mark_addressable (TREE_OPERAND (expr, 0));
|
||||
|
Loading…
Reference in New Issue
Block a user