1*d60f87b9Sbluhm /* $OpenBSD: setjmp-signal.c,v 1.4 2017/07/27 12:31:09 bluhm Exp $ */ 235f0245fSart /* 335f0245fSart * Written by Artur Grabowski <art@openbsd.org> 2002 Public Domain. 435f0245fSart */ 535f0245fSart 635f0245fSart #include <setjmp.h> 735f0245fSart #include <signal.h> 835f0245fSart 935f0245fSart jmp_buf jb; 1035f0245fSart 1135f0245fSart void segv_handler(int signum)1235f0245fSartsegv_handler(int signum) 1335f0245fSart { 1435f0245fSart longjmp(jb, 1); 1535f0245fSart } 1635f0245fSart 1735f0245fSart int main()1835f0245fSartmain() 1935f0245fSart { 2035f0245fSart signal(SIGSEGV, segv_handler); 2135f0245fSart if (setjmp(jb) == 0) { 22*d60f87b9Sbluhm *((volatile int *)0L) = 0; 2335f0245fSart return (1); 2435f0245fSart } 2535f0245fSart return (0); 2635f0245fSart } 27