diff --git a/libunwind/test/unwind_leaffunction.pass.cpp b/libunwind/test/unwind_leaffunction.pass.cpp --- a/libunwind/test/unwind_leaffunction.pass.cpp +++ b/libunwind/test/unwind_leaffunction.pass.cpp @@ -38,12 +38,15 @@ _Exit(-1); } +// This function must crash without calling any other function, since +// it must be a leaf function. __attribute__((noinline)) void crashing_leaf_func(void) { - raise(SIGSEGV); + __builtin_trap(); } int main(int, char**) { - signal(SIGSEGV, signal_handler); + signal(SIGTRAP, signal_handler); + signal(SIGILL, signal_handler); crashing_leaf_func(); return -2; }