| /* { dg-do run } */ | |
| extern void abort (void); | |
| struct X { | |
| int a; | |
| struct Y { | |
| int b[4]; | |
| } b; | |
| struct Y c; | |
| } m; | |
| struct X n; | |
| foo (int i) | |
| { | |
| struct Y *p = (i > 10) ? &m.b : &n.c; | |
| p->b[2] = 10; | |
| m.b.b[3] = 6; | |
| n.c.b[2] = 3; | |
| return p->b[2] + n.c.b[2] + m.b.b[3]; | |
| } | |
| main() | |
| { | |
| if (foo (3) != 12) | |
| abort (); | |
| return 0; | |
| } |