36 lines
369 B
C
36 lines
369 B
C
// 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;
|
|
}
|