Disable use of tls scanning on darwin leak sanitizer
authorFrancis Ricci <francisjricci@gmail.com>
Thu, 13 Apr 2017 20:14:15 +0000 (20:14 +0000)
committerFrancis Ricci <francisjricci@gmail.com>
Thu, 13 Apr 2017 20:14:15 +0000 (20:14 +0000)
Summary:
These checks appear linux-specific, disable them on darwin, at
least for now.

Reviewers: kubamracek, alekseyshl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32013

llvm-svn: 300248

compiler-rt/lib/lsan/lsan_common_mac.cc
compiler-rt/lib/lsan/lsan_flags.inc

index d155510..022e739 100644 (file)
@@ -87,7 +87,12 @@ AllocatorCache *GetAllocatorCache() { return &get_tls_val(true)->cache; }
 
 // Required on Linux for initialization of TLS behavior, but should not be
 // required on Darwin.
-void InitializePlatformSpecificModules() {}
+void InitializePlatformSpecificModules() {
+  if (flags()->use_tls) {
+    Report("use_tls=1 is not supported on Darwin.\n");
+    Die();
+  }
+}
 
 // Scans global variables for heap pointers.
 void ProcessGlobalRegions(Frontier *frontier) {
index e390e2a..8135bdc 100644 (file)
@@ -30,7 +30,7 @@ LSAN_FLAG(bool, use_globals, true,
           "Root set: include global variables (.data and .bss)")
 LSAN_FLAG(bool, use_stacks, true, "Root set: include thread stacks")
 LSAN_FLAG(bool, use_registers, true, "Root set: include thread registers")
-LSAN_FLAG(bool, use_tls, true,
+LSAN_FLAG(bool, use_tls, !SANITIZER_MAC,
           "Root set: include TLS and thread-specific storage")
 LSAN_FLAG(bool, use_root_regions, true,
           "Root set: include regions added via __lsan_register_root_region().")