* gdb.base/signull.c: Use sigsetjmp/siglongjmp instead of
authorUlrich Weigand <uweigand@de.ibm.com>
Thu, 20 May 2004 14:58:54 +0000 (14:58 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Thu, 20 May 2004 14:58:54 +0000 (14:58 +0000)
setjmp/longjmp.  Use sigaction instead of signal.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/signull.c

index 9d52841..8a82c33 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * gdb.base/signull.c: Use sigsetjmp/siglongjmp instead of 
+       setjmp/longjmp.  Use sigaction instead of signal.
+
 2004-05-19  J. Brobecker  <brobecker@gnat.com>
             Michael Snyder  <msnyder@redhat.com>
 
index 266a7dc..6c9ad85 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <signal.h>
 #include <setjmp.h>
+#include <stdlib.h>
 
 enum tests {
   code_entry_point, code_descriptor, data_pointer
@@ -38,7 +39,7 @@ jmp_buf env;
 extern void
 keeper (int sig)
 {
-  longjmp (env, 0);
+  siglongjmp (env, 0);
 }
 
 extern long
@@ -59,10 +60,15 @@ int
 main ()
 {
   static volatile int i;
-  signal (SIGSEGV, keeper);
+
+  struct sigaction act;
+  memset (&act, 0, sizeof act);
+  act.sa_handler = keeper;
+  sigaction (SIGSEGV, &act, NULL);
+
   for (i = 0; i < 10; i++)
     {
-      setjmp (env);
+      sigsetjmp (env, 1);
       bowler ();
     }
 }