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