blob: 67a4ffedd8655d29cba15d44c5bb2269f2f3564e [file] [log] [blame]
#include <exception>
#include <cstdlib>
struct e1 {};
struct e2 {};
struct a
{
a () { }
~a ()
#if __cplusplus >= 201103L
// Give this destructor a potentially-throwing exception specification so
// that we verify std::terminate gets called due to an exception during
// unwinding, not just because the destructor is noexcept.
noexcept(false)
#endif
{
try
{
throw e1();
}
catch (e2 &)
{
}
}
};
void
ex_test ()
{
a aa;
try
{
throw e1 ();
}
catch (e2 &)
{
}
}
void my_terminate ()
{
std::exit (0);
}