/* { dg-do compile } */
/* { dg-options "-Wstrict-aliasing=2 -O2" } */

int a[2];

double *foo1(void)
{
  return (double *)a; /* { dg-warning "strict-aliasing" } */
}

double *foo2(void)
{
  return (double *)&a[0]; /* { dg-warning "strict-aliasing" } */
}

__complex__ double x;
int *bar(void)
{
  return (int *)&__imag__ x; /* { dg-warning "strict-aliasing" } */
}
