/* 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; | |
} |