diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2005-11-21 04:48:19 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2005-11-21 04:48:19 +0000 |
commit | 33362918bffa49495556d4f1eb5fc4e5a0808398 (patch) | |
tree | c6c154eb0da40a03d2ddb5bdb5c6b0bd62695aba /sim/testsuite/sim/cris/c/sigreturn2.c | |
parent | 4e1c23a559814a39fc0278a1a8e8ef70a1eaa055 (diff) | |
download | gdb-33362918bffa49495556d4f1eb5fc4e5a0808398.tar.gz |
* sim/cris: New directory with C and assembly tests for the CRIS
simulator.
Diffstat (limited to 'sim/testsuite/sim/cris/c/sigreturn2.c')
-rw-r--r-- | sim/testsuite/sim/cris/c/sigreturn2.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sim/testsuite/sim/cris/c/sigreturn2.c b/sim/testsuite/sim/cris/c/sigreturn2.c new file mode 100644 index 00000000000..f0157f0488d --- /dev/null +++ b/sim/testsuite/sim/cris/c/sigreturn2.c @@ -0,0 +1,33 @@ +/* Check that TRT happens for spurious sigreturn calls. Multiple threads. +#notarget: cris*-*-elf +#cc: additional_flags=-pthread +#xerror: +#output: Invalid sigreturn syscall: no signal handler active (0x1, 0x2, 0x3, 0x4, 0x5, 0x6)\n +#output: program stopped with signal 4.\n +*/ + +#include <stdlib.h> +#include <stddef.h> +#include <stdio.h> +#include <unistd.h> +#include <pthread.h> +#include <sys/types.h> +#include <sys/syscall.h> +#include <signal.h> + +static void * +process (void *arg) +{ + while (1) + sched_yield (); + return NULL; +} + +int main (void) +{ + pthread_t th_a; + if (pthread_create (&th_a, NULL, process, (void *) "a") == 0) + syscall (SYS_sigreturn, 1, 2, 3, 4, 5, 6); + printf ("xyzzy\n"); + exit (0); +} |