blob: 8a1683dbc9d21cc225403df1e4cc9da558a14c65 [file] [log] [blame]
// 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()
#if __cplusplus <= 201402L
throw( int ) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } }
#endif
{throw 1;};
} raiser;
};
};
int main() {
try {
D d;
static_cast<B&>(d).Run();
} catch (...) {}
if (!destructor_called)
abort ();
}