rt_gccstream/gcc/testsuite/g++.dg/eh/elide2.C

35 lines
412 B
C

// PR c++/13944
// Verify that we still call terminate() if we do run the copy constructor,
// and it throws.
// { dg-do run }
#include <cstdlib>
#include <exception>
struct A
{
A() { }
A(const A&) { throw 1; }
};
A a;
void
good_terminate() { std::exit (0); }
int main()
{
std::set_terminate (good_terminate);
try
{
throw a;
}
catch (...)
{
return 2;
}
return 3;
}