root/regress/lib/libc/setjmp-signal/setjmp-signal.c
/*      $OpenBSD: setjmp-signal.c,v 1.4 2017/07/27 12:31:09 bluhm Exp $ */
/*
 *      Written by Artur Grabowski <art@openbsd.org> 2002 Public Domain.
 */

#include <setjmp.h>
#include <signal.h>

jmp_buf jb;

void
segv_handler(int signum)
{
        longjmp(jb, 1);
}

int
main()
{
        signal(SIGSEGV, segv_handler);
        if (setjmp(jb) == 0) {
                *((volatile int *)0L) = 0;
                return (1);
        }
        return (0);
}