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