diff options
-rw-r--r-- | test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp b/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp index 9b4bc067e..f7af8aa85 100644 --- a/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp +++ b/test/sanitizer_common/TestCases/Linux/signal_trap_handler.cpp @@ -3,11 +3,15 @@ #include <assert.h> #include <signal.h> #include <stdio.h> +#include <stdlib.h> -int handled; +int in_handler; void handler(int signo, siginfo_t *info, void *uctx) { - handled = 1; + fprintf(stderr, "in_handler: %d\n", in_handler); + fflush(stderr); + // CHECK: in_handler: 1 + _Exit(0); } int main() { @@ -21,9 +25,10 @@ int main() { assert(a.sa_sigaction == handler); assert(a.sa_flags & SA_SIGINFO); + in_handler = 1; __builtin_debugtrap(); - assert(handled); - fprintf(stderr, "HANDLED %d\n", handled); -} + in_handler = 0; -// CHECK: HANDLED 1 + fprintf(stderr, "UNREACHABLE\n"); + return 1; +} |