[PATCH] D27141: [asan] Support handle_sigill on Darwin

Kuba (Brecka) Mracek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 25 14:33:01 PST 2016


kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, rnk, eugenis, kcc.
kubabrecka added subscribers: zaks.anna, llvm-commits.
kubabrecka set the repository for this revision to rL LLVM.
kubabrecka added a project: Sanitizers.

Handling SIGILL on Darwin works fine, so let's just make this feature work and re-enable the ill.cc testcase.


Repository:
  rL LLVM

https://reviews.llvm.org/D27141

Files:
  lib/sanitizer_common/sanitizer_mac.cc
  test/asan/TestCases/ill.cc


Index: test/asan/TestCases/ill.cc
===================================================================
--- test/asan/TestCases/ill.cc
+++ test/asan/TestCases/ill.cc
@@ -3,7 +3,6 @@
 // RUN: %clangxx_asan %s -o %t && %env_asan_opts=handle_sigill=0 not --crash %run %t 2>&1 | FileCheck %s --check-prefix=CHECK0
 // RUN: %clangxx_asan %s -o %t && %env_asan_opts=handle_sigill=1 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK1
 // REQUIRES: x86-target-arch
-// UNSUPPORTED: darwin
 
 #ifdef _WIN32
 #include <windows.h>
Index: lib/sanitizer_common/sanitizer_mac.cc
===================================================================
--- lib/sanitizer_common/sanitizer_mac.cc
+++ lib/sanitizer_common/sanitizer_mac.cc
@@ -400,6 +400,8 @@
     return false;
   if (common_flags()->handle_abort && signum == SIGABRT)
     return true;
+  if (common_flags()->handle_sigill && signum == SIGILL)
+    return true;
   return (signum == SIGSEGV || signum == SIGBUS) && common_flags()->handle_segv;
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27141.79324.patch
Type: text/x-patch
Size: 996 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161125/432d17f5/attachment.bin>


More information about the llvm-commits mailing list