/* { dg-do compile } */ /* { dg-require-effective-target store_merge } */ /* { dg-options "-O2 -fdump-tree-store-merging" } */ struct baz { struct bar { int a; char b; char c; char d; char e; char f; char g; } a[4]; } x; struct baz *xx = &x; void foo1 (int i) { x.a[i].b = 0; x.a[i].a = 0; x.a[i].c = 0; x.a[i].d = 0; x.a[i].e = 0; } void foo2 (int i) { x.a[i].b = 0; x.a[i].a = 0; x.a[i].c = 1; x.a[i].d = 0; x.a[i].e = 0; } /* { dg-final { scan-tree-dump-times "Merging successful" 2 "store-merging" } } */