// { dg-do assemble { xfail 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;
    }
};
