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()18int 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