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)15 foo (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()24 main()
25 {
26   if (foo (3) != 12)
27     abort ();
28   return 0;
29 }
30