36 lines
646 B
C
36 lines
646 B
C
// PR 14535
|
|
// { dg-do run }
|
|
// { dg-options "-O -finline" }
|
|
//
|
|
// Original test case failure required that Raiser constructor be inlined.
|
|
|
|
extern "C" void abort();
|
|
bool destructor_called = false;
|
|
|
|
struct B {
|
|
virtual void Run(){};
|
|
};
|
|
|
|
struct D : public B {
|
|
virtual void Run()
|
|
{
|
|
struct O {
|
|
~O() { destructor_called = true; };
|
|
} o;
|
|
|
|
struct Raiser {
|
|
Raiser() throw( int ) {throw 1;};
|
|
} raiser;
|
|
};
|
|
};
|
|
|
|
int main() {
|
|
try {
|
|
D d;
|
|
static_cast<B&>(d).Run();
|
|
} catch (...) {}
|
|
|
|
if (!destructor_called)
|
|
abort ();
|
|
}
|