[Bug middle-end/57748] [4.7/4.8/4.9 Regression] ICE when expanding assignment to unaligned zero-sized array
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 6 08:12:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57748
--- Comment #33 from Richard Biener <rguenth at gcc dot gnu.org> ---
My point is that
> - mode = TYPE_MODE (TREE_TYPE (tem));
> - if (TREE_CODE (tem) == MEM_REF
> - && mode != BLKmode
> - && ((align = get_object_alignment (tem))
> - < GET_MODE_ALIGNMENT (mode))
> - && ((icode = optab_handler (movmisalign_optab, mode))
is wrong because it asks if we can do a V2DFmode (the mode of the
whole struct!) unaligned store which the backend says, yes!, and
it builds a V2DFmode store for us to use.
But the _access_ is V1DFmode! The access is not to 'tem' but to 'to'!
Using the mode of 'tem' is just wrong to use for movmisalign.
More information about the Gcc-bugs
mailing list