1 /* $OpenBSD: setjmp-signal.c,v 1.4 2017/07/27 12:31:09 bluhm Exp $ */ 2 /* 3 * Written by Artur Grabowski <art@openbsd.org> 2002 Public Domain. 4 */ 5 6 #include <setjmp.h> 7 #include <signal.h> 8 9 jmp_buf jb; 10 11 void 12 segv_handler(int signum) 13 { 14 longjmp(jb, 1); 15 } 16 17 int 18 main() 19 { 20 signal(SIGSEGV, segv_handler); 21 if (setjmp(jb) == 0) { 22 *((volatile int *)0L) = 0; 23 return (1); 24 } 25 return (0); 26 } 27