[PATCH] D32013: Disable use of tls scanning on darwin leak sanitizer

Francis Ricci via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 13 11:01:45 PDT 2017


fjricci updated this revision to Diff 95169.
fjricci added a comment.

Split out test component


https://reviews.llvm.org/D32013

Files:
  lib/lsan/lsan_common_mac.cc
  lib/lsan/lsan_flags.inc


Index: lib/lsan/lsan_flags.inc
===================================================================
--- lib/lsan/lsan_flags.inc
+++ lib/lsan/lsan_flags.inc
@@ -30,7 +30,7 @@
           "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().")
Index: lib/lsan/lsan_common_mac.cc
===================================================================
--- lib/lsan/lsan_common_mac.cc
+++ lib/lsan/lsan_common_mac.cc
@@ -87,7 +87,12 @@
 
 // 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) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32013.95169.patch
Type: text/x-patch
Size: 1222 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170413/772d270a/attachment.bin>


More information about the llvm-commits mailing list