[compiler-rt] Replace ifs with switch statement in IsHandledDeadlySignal
Reviewers: eugenis Subscribers: kubamracek, llvm-commits, dberris Differential Revision: https://reviews.llvm.org/D33158 llvm-svn: 303392
This commit is contained in:
parent
7b62d7ccc0
commit
1cfc81f1de
|
@ -1395,15 +1395,19 @@ AndroidApiLevel AndroidGetApiLevel() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool IsHandledDeadlySignal(int signum) {
|
bool IsHandledDeadlySignal(int signum) {
|
||||||
if (common_flags()->handle_abort && signum == SIGABRT)
|
switch (signum) {
|
||||||
return true;
|
case SIGABRT:
|
||||||
if (common_flags()->handle_sigill && signum == SIGILL)
|
return common_flags()->handle_abort;
|
||||||
return true;
|
case SIGILL:
|
||||||
if (common_flags()->handle_sigfpe && signum == SIGFPE)
|
return common_flags()->handle_sigill;
|
||||||
return true;
|
case SIGFPE:
|
||||||
if (common_flags()->handle_segv && signum == SIGSEGV)
|
return common_flags()->handle_sigfpe;
|
||||||
return true;
|
case SIGSEGV:
|
||||||
return common_flags()->handle_sigbus && signum == SIGBUS;
|
return common_flags()->handle_segv;
|
||||||
|
case SIGBUS:
|
||||||
|
return common_flags()->handle_sigbus;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !SANITIZER_GO
|
#if !SANITIZER_GO
|
||||||
|
|
|
@ -394,18 +394,22 @@ void ListOfModules::init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsHandledDeadlySignal(int signum) {
|
bool IsHandledDeadlySignal(int signum) {
|
||||||
if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM))
|
|
||||||
// Handling fatal signals on watchOS and tvOS devices is disallowed.
|
// Handling fatal signals on watchOS and tvOS devices is disallowed.
|
||||||
|
if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM))
|
||||||
|
return false;
|
||||||
|
switch (signum) {
|
||||||
|
case SIGABRT:
|
||||||
|
return common_flags()->handle_abort;
|
||||||
|
case SIGILL:
|
||||||
|
return common_flags()->handle_sigill;
|
||||||
|
case SIGFPE:
|
||||||
|
return common_flags()->handle_sigfpe;
|
||||||
|
case SIGSEGV:
|
||||||
|
return common_flags()->handle_segv;
|
||||||
|
case SIGBUS:
|
||||||
|
return common_flags()->handle_sigbus;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
if (common_flags()->handle_abort && signum == SIGABRT)
|
|
||||||
return true;
|
|
||||||
if (common_flags()->handle_sigill && signum == SIGILL)
|
|
||||||
return true;
|
|
||||||
if (common_flags()->handle_sigfpe && signum == SIGFPE)
|
|
||||||
return true;
|
|
||||||
if (common_flags()->handle_segv && signum == SIGSEGV)
|
|
||||||
return true;
|
|
||||||
return common_flags()->handle_sigbus && signum == SIGBUS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED;
|
MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED;
|
||||||
|
|
Loading…
Reference in New Issue