1 /* { dg-do compile } */
2 /* { dg-options "-Wstrict-aliasing=2 -O2 -Wall" } */
3 
4 int a[2];
5 
foo1(void)6 double *foo1(void)
7 {
8   return (double *)a; /* { dg-warning "strict-aliasing" } */
9 }
10 
foo2(void)11 double *foo2(void)
12 {
13   return (double *)&a[0]; /* { dg-warning "strict-aliasing" } */
14 }
15 
16 __complex__ double x;
bar(void)17 int *bar(void)
18 {
19   return (int *)&__imag__ x; /* { dg-warning "strict-aliasing" } */
20 }
21