Implement P0017R1, C++17 aggregates with bases.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1z / aggr-base1.C
blob37bb472bbe1bd6e3154cfe6b6e1e326e5fb7735f
1 // { dg-options -std=c++1z }
2 // { dg-do run }
4 struct base1 { int b1, b2 = 42; };
5 struct base2 {
6   base2() {
7     b3 = 42;
8   }
9   int b3;
11 struct derived : base1, base2 {
12   int d;
15 derived d1{{1, 2}, {}, 4};
16 derived d2{{}, {}, 4};
18 #define assert(X) do { if (!(X)) __builtin_abort(); } while(0)
19 int main()
21   assert (d1.b1 == 1 && d1.b2 == 2 && d1.b3 == 42 && d1.d == 4);
22   assert (d2.b1 == 0 && d2.b2 == 42 && d2.b3 == 42 && d2.d == 4);