| // { dg-do run { target c++11 } } | |
| int a_ct; | |
| struct A | |
| { | |
| A(int i): i(i) { ++a_ct; } | |
| A(const A& a): i(a.i) { ++a_ct; } | |
| ~A() { --a_ct; } | |
| int i; | |
| }; | |
| struct V | |
| { | |
| V() { } | |
| }; | |
| struct B: virtual V | |
| { | |
| A a; | |
| B(A a): a(a) { } | |
| B(int i): B(A(i)) { } | |
| }; | |
| struct C: B | |
| { | |
| C(int i): B(i) { } | |
| }; | |
| int main() | |
| { | |
| { | |
| B b(42); | |
| C c(24); | |
| if (b.a.i != 42 | |
| ||c.a.i != 24) | |
| __builtin_abort (); | |
| } | |
| return a_ct; | |
| } |