/* { dg-do compile } */ /* { dg-options "-O2 -fno-strict-aliasing" } */
unsigned int *foo (void); char * bar (double *d) { return (char *) (d + 1) - sizeof (unsigned int); } char baz (double x) { unsigned int h = *foo (); unsigned int l = *(unsigned int *) bar (&x); return (h & ~0x80000000L) == 0x7FF00000 && l == 0; } when compiled with -m64 -O2 -fno-strict-aliasing dies with ICE in change_address_1. This is a regression from 3.4.x. -- Summary: ICE in change_address_1 Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: s390x-redhat-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20054