/* { dg-do run } */ struct S { int i; void *p; int j; }; int a; int __attribute__((noinline)) foo (struct S * __restrict p, int q) { int *x = &p->j; if (q) x = &a; p->j = 1; *x = 2; return p->j; } int main() { struct S s; if (foo (&s, 0) != 2) __builtin_abort (); return 0; }