/* { dg-do compile } */
/* APPLE LOCAL strict alias off */
/* { dg-options "-O2 -fstrict-aliasing" } */
/* { dg-final { scan-assembler-not "undefined" } } */

/* Make sure we optimize all calls away.  */

extern void undefined (void);
struct s { int a, b; };
void bar (struct s *ps,  int *p, int *__restrict__ rp, int *__restrict__ rq)
{
  ps->a = 0;
  ps->b = 1;
  if (ps->a != 0)
    undefined ();
  p[0] = 0;
  p[1] = 1;
  if (p[0] != 0)
    undefined ();
  rp[0] = 0;
  rq[0] = 1;
  if (rp[0] != 0)
    undefined ();
}
int main (void) {
  return 0;
}
