1 2 /* { dg-do compile } */ 3 /* { dg-options "-O2 -fno-strict-aliasing" } */ 4 5 6 unsigned int *foo (void); 7 8 char * bar(double * d)9bar (double *d) 10 { 11 return (char *) (d + 1) - sizeof (unsigned int); 12 } 13 14 char baz(double x)15baz (double x) 16 { 17 unsigned int h = *foo (); 18 unsigned int l = *(unsigned int *) bar (&x); 19 20 return (h & ~0x80000000L) == 0x7FF00000 && l == 0; 21 } 22 23 24