aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/signull.c12
2 files changed, 14 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9d52841..8a82c33 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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>
diff --git a/gdb/testsuite/gdb.base/signull.c b/gdb/testsuite/gdb.base/signull.c
index 266a7dc..6c9ad85 100644
--- a/gdb/testsuite/gdb.base/signull.c
+++ b/gdb/testsuite/gdb.base/signull.c
@@ -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 ();
}
}