1 // PR tree-optimization/28003
2 // Alias grouping needs to be computed after call clobbering, because it
3 // changes around the tags and variables in a way that makes our
4 // call clobbering computation incorrect.
5 // { dg-do run }
6 // { dg-options "-O2" }
7 extern "C" void abort(void);
8 struct A
9 {
10 int i, j[9];
AA11 A() : i(1) { j[0]=j[1]=j[2]=j[3]=j[4]=j[5]=j[6]=j[7]=j[8]=0; }
12 };
13
14 struct B
15 {
16 A a;
17 };
18
19 B b[] =
20 {
21 {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
22 {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
23 {}, {}, {}, {}, {}
24 };
25
main()26 int main()
27 {
28 if (1 - b[sizeof(b)/sizeof(B) - 1].a.i != 0)
29 abort();
30 return 0;
31 }
32