1 /* { dg-do run } */ 2 3 struct S { int i; void *p; int j; }; 4 int a; 5 int __attribute__((noinline)) foo(struct S * __restrict p,int q)6foo (struct S * __restrict p, int q) 7 { 8 int *x = &p->j; 9 if (q) 10 x = &a; 11 p->j = 1; 12 *x = 2; 13 return p->j; 14 } 15 main()16int main() 17 { 18 struct S s; 19 if (foo (&s, 0) != 2) 20 __builtin_abort (); 21 return 0; 22 } 23