1 // { dg-do run { target c++17 } }
2 
3 struct base1 { int b1, b2 = 42; };
4 struct base2 {
base2base25   base2() {
6     b3 = 42;
7   }
8   int b3;
9 };
10 struct derived : base1, base2 {
11   int d;
12 };
13 
14 derived d1{{1, 2}, {}, 4};
15 derived d2{{}, {}, 4};
16 
17 #define assert(X) do { if (!(X)) __builtin_abort(); } while(0)
main()18 int main()
19 {
20   assert (d1.b1 == 1 && d1.b2 == 2 && d1.b3 == 42 && d1.d == 4);
21   assert (d2.b1 == 0 && d2.b2 == 42 && d2.b3 == 42 && d2.d == 4);
22 }
23