// { 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; | |
} |