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)8 foo (int *pi)
9 {
10   if (*pi != 1)
11     abort ();
12 }
13 
14 int
main()15 main()
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