1/* { dg-do run } */ 2/* { dg-additional-options "-fstrict-aliasing" } */ 3 4extern void *malloc (__SIZE_TYPE__); 5extern void abort (void); 6 7void __attribute__((noinline,noclone)) 8foo (int *pi) 9{ 10 if (*pi != 1) 11 abort (); 12} 13 14int 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