// PR c++/41449 | |
// { dg-do run } | |
struct A | |
{ | |
A() {} | |
A(const A&) { throw 1; } | |
}; | |
int bs; | |
struct B | |
{ | |
B() { ++bs; } | |
B(const B&) { ++bs; } | |
~B() { --bs; } | |
}; | |
struct C | |
{ | |
B b1; | |
A a; | |
B b2; | |
}; | |
int main() | |
{ | |
{ | |
B b1, b2; | |
A a; | |
try { | |
C c = { b1, a, b2 }; | |
} catch (...) {} | |
} | |
if (bs != 0) | |
__builtin_abort (); | |
} |