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