From d2a5c6a68e5db94f61677dbae6b27fb536b4c1e5 Mon Sep 17 00:00:00 2001 From: art <> Date: Wed, 31 Jul 2002 05:18:24 +0000 Subject: Test that longjmp from signals works. (it does) --- src/regress/lib/libc/setjmp-signal/Makefile | 5 +++++ src/regress/lib/libc/setjmp-signal/setjmp-signal.c | 26 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/regress/lib/libc/setjmp-signal/Makefile create mode 100644 src/regress/lib/libc/setjmp-signal/setjmp-signal.c (limited to 'src') diff --git a/src/regress/lib/libc/setjmp-signal/Makefile b/src/regress/lib/libc/setjmp-signal/Makefile new file mode 100644 index 0000000000..a9649a8abe --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/Makefile @@ -0,0 +1,5 @@ +# $OpenBSD: Makefile,v 1.1 2002/07/31 05:18:24 art Exp $ + +PROG= setjmp-signal + +.include diff --git a/src/regress/lib/libc/setjmp-signal/setjmp-signal.c b/src/regress/lib/libc/setjmp-signal/setjmp-signal.c new file mode 100644 index 0000000000..c44f657cda --- /dev/null +++ b/src/regress/lib/libc/setjmp-signal/setjmp-signal.c @@ -0,0 +1,26 @@ +/* $OpenBSD: setjmp-signal.c,v 1.1 2002/07/31 05:18:24 art Exp $ */ +/* + * Written by Artur Grabowski 2002 Public Domain. + */ + +#include +#include + +jmp_buf jb; + +void +segv_handler(int signum) +{ + longjmp(jb, 1); +} + +int +main() +{ + signal(SIGSEGV, segv_handler); + if (setjmp(jb) == 0) { + *((int *)0) = 0; + return (1); + } + return (0); +} -- cgit v1.2.3-55-g6feb