diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/crash43.C')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.brendan/crash43.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash43.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash43.C new file mode 100755 index 0000000..5fe5423 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash43.C @@ -0,0 +1,25 @@ +// Build don't link: +// Special g++ Options: -g -fno-strict-prototype +// GROUPS passed old-abort +// excess errors test - XFAIL sparc64-*-elf +extern "C" { typedef int jmp_buf[12]; } + +enum Error { NO_ERROR }; +class ErrorHandler +{ + ErrorHandler *previous; + static ErrorHandler *error_stack; + jmp_buf error_buffer; +protected: + static void pop() + { + error_stack = error_stack->previous; + } +public: + jmp_buf *push() + { + previous = error_stack; + error_stack = this; + return &error_buffer; + } +}; |