/* { 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

Reply via email to