#include <stdio.h>
class B {
public:
B() {
printf("B::ctor();\n");
return;
}
~B() {
printf("B::dtor();\n");
return;
}
};
class A {
class B b;
public:
A() : b() {
printf("A::ctor();\n");
throw 0;
}
~A() {
printf("A::dtor();\n");
}
};
int f(A* a) {
printf("f();");
return 0;
}
int main(void) {
try {
auto a = f(new A());
} catch (...) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjbGFzcyBCIHsKIHB1YmxpYzoKIAlCKCkgewogCQlwcmludGYoIkI6OmN0b3IoKTtcbiIpOwogCQlyZXR1cm47CiAJfQogCQogCX5CKCkgewogCQlwcmludGYoIkI6OmR0b3IoKTtcbiIpOwogCQlyZXR1cm47CiAJfQp9OwoKY2xhc3MgQSB7CgljbGFzcyBCIGI7CgkKIHB1YmxpYzoKCUEoKSA6IGIoKSB7CgkJcHJpbnRmKCJBOjpjdG9yKCk7XG4iKTsKCQl0aHJvdyAwOwoJfQoJCgl+QSgpIHsKCQlwcmludGYoIkE6OmR0b3IoKTtcbiIpOwoJfQp9OwoKaW50IGYoQSogYSkgewoJcHJpbnRmKCJmKCk7Iik7CglyZXR1cm4gMDsKfQoKaW50IG1haW4odm9pZCkgewoJdHJ5IHsKCQlhdXRvIGEgPSBmKG5ldyBBKCkpOwoJfSBjYXRjaCAoLi4uKSB7Cgl9CglyZXR1cm4gMDsKfQo=