| // PR c++/411 | |
| // Test that a fully-constructed base is destroyed before transferring | |
| // control to the handler of a function-try-block. | |
| // { dg-do run } | |
| int ad; | |
| int r; | |
| struct A { | |
| ~A() { ++ad; } | |
| }; | |
| struct B: public A { | |
| ~B(); | |
| }; | |
| B::~B () | |
| try | |
| { | |
| throw 1; | |
| } | |
| catch (...) | |
| { | |
| if (!ad) | |
| r = 1; | |
| return; | |
| } | |
| int main () | |
| { | |
| { B b; } | |
| return r; | |
| } |