1 // { dg-do run }
2 // Check that elements for which no explicit initializer was given are
3 // default-initialized properly.
4
5 extern "C" int printf (const char *, ...);
6
7 struct A
8 {
9 int i;
AA10 A(): i (42) { }
AA11 A(int j): i(j) { }
12 };
13
14 A ar[4] = { 1, 2 };
15
16 struct B
17 {
18 A a1, a2, a3, a4;
19 };
20
21 B b = { 1, 2 };
22
23 struct C
24 {
25 A ar[4];
26 };
27
28 C c = { 1, 2 };
29
30 int
main()31 main ()
32 {
33 printf ("%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n",
34 ar[0].i, ar[1].i, ar[2].i, ar[3].i,
35 b.a1.i, b.a2.i, b.a3.i, b.a4.i,
36 c.ar[1-1].i, c.ar[2-1].i, c.ar[3-1].i, c.ar[4-1].i);
37
38 return (b.a4.i != 42 || c.ar[3].i != 42);
39 }
40