1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3 
4 struct a {int v1;
5           int v2;};
6 struct b {struct a a[0];};
7 union c {struct b b;};
8 
9 int
test(struct b * bptr1,union c * cptr,int i,int j)10 test (struct b *bptr1, union c *cptr, int i, int j)
11 {
12   bptr1->a[i].v1=123;
13   cptr->b.a[j].v2=1;
14   return bptr1->a[i].v1;
15 }
16 int
test2(struct b * bptr1,union c * cptr,int i,int j)17 test2 (struct b *bptr1, union c *cptr, int i, int j)
18 {
19   bptr1->a[i].v1=124;
20   cptr->b.a[j].v1=1;
21   return bptr1->a[i].v1;
22 }
23 /* { dg-final { scan-tree-dump-times "return 123" 1 "optimized"  { xfail *-*-* } } } */
24 /* { dg-final { scan-tree-dump-not "return 124" "optimized"} } */
25