setjmp/longjmp. Use sigaction instead of signal.
+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>
#include <signal.h>
#include <setjmp.h>
+#include <stdlib.h>
enum tests {
code_entry_point, code_descriptor, data_pointer
extern void
keeper (int sig)
{
- longjmp (env, 0);
+ siglongjmp (env, 0);
}
extern long
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 ();
}
}