diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/eh23.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/eh23.C | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh23.C b/gcc/testsuite/g++.old-deja/g++.mike/eh23.C deleted file mode 100644 index 27fc53d8eeb..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh23.C +++ /dev/null @@ -1,46 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <exception> - -struct double_fault { }; -int fault_now; - -class E { -public: - E() { } - E(const E&) { - if (fault_now) - throw double_fault(); - } -}; - -void foo() { - try { - throw E(); - } catch (...) { - fault_now = 1; - throw; - } -} - -void bar() { - try { - foo(); - } catch (E e) { // double fault here - } -} - -void my_terminate() { - exit (0); // double faults should call terminate -} - -main() { - std::set_terminate (my_terminate); - try { - bar(); - } catch (...) { - return 1; - } - return 1; -} |