1 /* { dg-do run } */ 2 /* { dg-additional-options "-fstrict-aliasing" } */ 3 4 extern void *malloc (__SIZE_TYPE__); 5 extern void abort (void); 6 7 void __attribute__((noinline,noclone)) foo(int * pi)8foo (int *pi) 9 { 10 if (*pi != 1) 11 abort (); 12 } 13 14 int main()15main() 16 { 17 void *p = malloc(sizeof (double)); 18 int *pi = p; 19 double *pd = p; 20 21 *pi = 1; 22 int a = *pi; 23 *pd = 0; 24 *pi = a; 25 foo (pi); 26 27 return 0; 28 } 29