// Special g++ Options: -fexceptions | |
// excess errors test - XFAIL a29k-*-* sparc64-*-elf arm-*-pe | |
#include <exception> | |
#include <stdlib.h> | |
void my_terminate() { | |
exit (0); // Double faults should call terminate | |
} | |
struct A { | |
A() { } | |
~A() { | |
std::set_terminate (my_terminate); | |
throw 1; // This throws from EH dtor, should call my_terminate | |
} | |
}; | |
main() { | |
try { | |
try { | |
throw 1; | |
} catch (int i) { | |
A a; // A hit on this EH dtor went to the wrong place | |
throw 1; | |
} | |
} catch (...) { | |
return 1; | |
} | |
return 1; | |
} |