[Bug middle-end/102162] Byte-wise access optimized away at -O1 and above
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 1 23:55:02 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102162
--- Comment #20 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
tem was the var_decl
/* If TEM's type is a union of variable size, pass TARGET to the inner
computation, since it will need a temporary and TARGET is known
to have to do. This occurs in unchecked conversion in Ada. */
orig_op0 = op0
= expand_expr_real (tem,
(TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
&& COMPLETE_TYPE_P (TREE_TYPE (tem))
&& (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
!= INTEGER_CST)
&& modifier != EXPAND_STACK_PARM
? target : NULL_RTX),
VOIDmode,
modifier == EXPAND_SUM ? EXPAND_NORMAL :
modifier,
NULL, true);
produces:
(gdb) p debug_rtx(op0)
(mem/c:SI (reg/f:DI 71) [1 output_len+0 S4 A32])
Note the A32 here.
So it is a bug in the expansion of the var_decl.
More information about the Gcc-bugs
mailing list