[Bug middle-end/54041] [4.7/4.8/4.9 regression] -mshort ICE in convert_memory_address_addr_space, at explow.c:327
law at redhat dot com
gcc-bugzilla@gcc.gnu.org
Thu Feb 6 06:02:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54041
Jeffrey A. Law <law at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P4 |P5
CC| |law at redhat dot com
Assignee|unassigned at gcc dot gnu.org |law at redhat dot com
--- Comment #10 from Jeffrey A. Law <law at redhat dot com> ---
I believe the problem is expand_expr_addr_expr_1 assumes that expand_expr will
produce a result in the requested mode. Unfortunately, expand_expr has always
been free to return an object with a different mode.
If we use convert_modes in the obvious way when tmode != GET_MODE (tmp) we no
longer get the ICE and the resulting code looks reasonably correct.
Of course we don't really have a good way to test -mshort. I'm not even sure
if it's used anymore in real world scenarios.
I'll do a bootstrap and test on x86_64, but I obviously realize that's not
going to give this change any real coverage testing.
More information about the Gcc-bugs
mailing list