191094Sdes/* { dg-do run } */ 291094Sdes/* { dg-additional-options "-fstrict-aliasing" } */ 391094Sdes 491094Sdesextern void *malloc (__SIZE_TYPE__); 591094Sdesextern void abort (void); 691094Sdes 791094Sdesvoid __attribute__((noinline,noclone)) 891094Sdesfoo (int *pi) 991094Sdes{ 1091094Sdes if (*pi != 1) 1191094Sdes abort (); 1291094Sdes} 1391094Sdes 1491094Sdesint 1591094Sdesmain() 1691094Sdes{ 1791094Sdes void *p = malloc(sizeof (double)); 1891094Sdes int *pi = p; 1991094Sdes double *pd = p; 2091094Sdes 2191094Sdes *pi = 1; 2291094Sdes int a = *pi; 2391094Sdes *pd = 0; 2491094Sdes *pi = a; 2591094Sdes foo (pi); 2691094Sdes 2791094Sdes return 0; 2891094Sdes} 2991094Sdes