1 /* { dg-do run } */ 2 3 struct X { 4 int i; 5 int a[4]; 6 } m; 7 8 int a[4]; 9 foo(int b)10int __attribute__((noinline)) foo(int b) 11 { 12 int (*p)[4] = b ? &a : &m.a; 13 a[3] = 0; 14 (*p)[3] = 1; 15 return (*p)[3] + (*p)[2] + (*p)[1] + a[0] + a[3]; 16 } 17 18 extern void abort (void); 19 main()20int main() 21 { 22 int i; 23 for (i = 0; i < 4; ++i) 24 a[i] = 0; 25 if (foo(1) != 2) 26 abort (); 27 return 0; 28 } 29 30