Index: lib/asan/asan_interceptors.cc =================================================================== --- lib/asan/asan_interceptors.cc +++ lib/asan/asan_interceptors.cc @@ -357,7 +357,7 @@ #if SANITIZER_ANDROID INTERCEPTOR(void*, bsd_signal, int signum, void *handler) { - if (!IsHandledDeadlySignal(signum) || + if (!GetHandleDeadlySignal(signum) || common_flags()->allow_user_segv_handler) { return REAL(bsd_signal)(signum, handler); } @@ -366,7 +366,7 @@ #endif INTERCEPTOR(void*, signal, int signum, void *handler) { - if (!IsHandledDeadlySignal(signum) || + if (!GetHandleDeadlySignal(signum) || common_flags()->allow_user_segv_handler) { return REAL(signal)(signum, handler); } @@ -375,7 +375,7 @@ INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act, struct sigaction *oldact) { - if (!IsHandledDeadlySignal(signum) || + if (!GetHandleDeadlySignal(signum) || common_flags()->allow_user_segv_handler) { return REAL(sigaction)(signum, act, oldact); } Index: lib/sanitizer_common/sanitizer_common.h =================================================================== --- lib/sanitizer_common/sanitizer_common.h +++ lib/sanitizer_common/sanitizer_common.h @@ -380,7 +380,7 @@ // Functions related to signal handling. typedef void (*SignalHandlerType)(int, void *, void *); -bool IsHandledDeadlySignal(int signum); +int GetHandleDeadlySignal(int signum); void InstallDeadlySignalHandlers(SignalHandlerType handler); const char *DescribeSignalOrException(int signo); // Alternative signal stack (POSIX-only). Index: lib/sanitizer_common/sanitizer_linux.cc =================================================================== --- lib/sanitizer_common/sanitizer_linux.cc +++ lib/sanitizer_common/sanitizer_linux.cc @@ -1394,7 +1394,7 @@ #endif -bool IsHandledDeadlySignal(int signum) { +int GetHandleDeadlySignal(int signum) { switch (signum) { case SIGABRT: return common_flags()->handle_abort; @@ -1407,7 +1407,7 @@ case SIGBUS: return common_flags()->handle_sigbus; } - return false; + return 0; } #if !SANITIZER_GO Index: lib/sanitizer_common/sanitizer_mac.cc =================================================================== --- lib/sanitizer_common/sanitizer_mac.cc +++ lib/sanitizer_common/sanitizer_mac.cc @@ -393,7 +393,7 @@ memory_mapping.DumpListOfModules(&modules_); } -bool IsHandledDeadlySignal(int signum) { +int GetHandleDeadlySignal(int signum) { if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM)) { // Handling fatal signals on watchOS and tvOS devices is disallowed. return false; @@ -410,7 +410,7 @@ case SIGBUS: return common_flags()->handle_sigbus; } - return false; + return 0; } MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED; Index: lib/sanitizer_common/sanitizer_posix_libcdep.cc =================================================================== --- lib/sanitizer_common/sanitizer_posix_libcdep.cc +++ lib/sanitizer_common/sanitizer_posix_libcdep.cc @@ -134,7 +134,7 @@ void Abort() { #if !SANITIZER_GO // If we are handling SIGABRT, unhandle it first. - if (IsHandledDeadlySignal(SIGABRT)) { + if (GetHandleDeadlySignal(SIGABRT)) { struct sigaction sigact; internal_memset(&sigact, 0, sizeof(sigact)); sigact.sa_sigaction = (sa_sigaction_t)SIG_DFL; @@ -188,8 +188,7 @@ static void MaybeInstallSigaction(int signum, SignalHandlerType handler) { - if (!IsHandledDeadlySignal(signum)) - return; + if (!GetHandleDeadlySignal(signum)) return; struct sigaction sigact; if (common_flags()->allow_user_segv_handler) { internal_memset(&sigact, 0, sizeof(sigact)); Index: lib/sanitizer_common/sanitizer_win.cc =================================================================== --- lib/sanitizer_common/sanitizer_win.cc +++ lib/sanitizer_common/sanitizer_win.cc @@ -832,9 +832,9 @@ // FIXME: Decide what to do on Windows. } -bool IsHandledDeadlySignal(int signum) { +int GetHandleDeadlySignal(int signum) { // FIXME: Decide what to do on Windows. - return false; + return 0; } // Check based on flags if we should handle this exception.