| /* PR tree-optimization/22043 */ | |
| extern void abort (void); | |
| struct A { int i; int j; int k; int l; }; | |
| struct B { struct A a; int r[1]; }; | |
| struct C { struct A a; int r[0]; }; | |
| struct D { struct A a; int r[]; }; | |
| void | |
| foo (struct A *x) | |
| { | |
| if (x->i != 0 || x->j != 5 || x->k != 0 || x->l != 0) | |
| abort (); | |
| } | |
| int | |
| main () | |
| { | |
| struct B b = { .a.j = 5 }; | |
| struct C c = { .a.j = 5 }; | |
| struct D d = { .a.j = 5 }; | |
| foo (&b.a); | |
| foo (&c.a); | |
| foo (&d.a); | |
| return 0; | |
| } |