// { dg-do assemble } // { dg-xfail-if "" { sparc64-*-elf } { "*" } { "" } } // { dg-options "-g" } // GROUPS passed old-abort 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; } };