[PATCH] D20911: [asan] Turn LSan-related #if’s into regular if’s in ASan initializer

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 2 07:59:25 PDT 2016


kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, samsonov, glider, kcc.
kubabrecka added a subscriber: llvm-commits.
kubabrecka added a project: Sanitizers.
Herald added a subscriber: kubabrecka.

Removing some preprocessor #if’s in favor of regular if’s.  However, we need to declare empty stub functions to avoid linker errors.

http://reviews.llvm.org/D20911

Files:
  lib/asan/asan_rtl.cc
  lib/lsan/lsan_common.cc

Index: lib/lsan/lsan_common.cc
===================================================================
--- lib/lsan/lsan_common.cc
+++ lib/lsan/lsan_common.cc
@@ -650,6 +650,13 @@
 }
 
 } // namespace __lsan
+#else // CAN_SANITIZE_LEAKS
+namespace __lsan {
+void InitCommonLsan() { }
+void DoLeakCheck() { }
+void DisableInThisThread() { }
+void EnableInThisThread() { }
+}
 #endif // CAN_SANITIZE_LEAKS
 
 using namespace __lsan;  // NOLINT
Index: lib/asan/asan_rtl.cc
===================================================================
--- lib/asan/asan_rtl.cc
+++ lib/asan/asan_rtl.cc
@@ -540,25 +540,25 @@
   force_interface_symbols();  // no-op.
   SanitizerInitializeUnwinder();
 
-#if CAN_SANITIZE_LEAKS
-  __lsan::InitCommonLsan();
-  if (common_flags()->detect_leaks && common_flags()->leak_check_at_exit) {
-    Atexit(__lsan::DoLeakCheck);
+  if (CAN_SANITIZE_LEAKS) {
+    __lsan::InitCommonLsan();
+    if (common_flags()->detect_leaks && common_flags()->leak_check_at_exit) {
+      Atexit(__lsan::DoLeakCheck);
+    }
   }
-#endif  // CAN_SANITIZE_LEAKS
 
 #if CAN_SANITIZE_UB
   __ubsan::InitAsPlugin();
 #endif
 
   InitializeSuppressions();
 
-  {
-#if CAN_SANITIZE_LEAKS
+  if (CAN_SANITIZE_LEAKS) {
     // LateInitialize() calls dlsym, which can allocate an error string buffer
     // in the TLS.  Let's ignore the allocation to avoid reporting a leak.
     __lsan::ScopedInterceptorDisabler disabler;
-#endif
+    Symbolizer::LateInitialize();
+  } else {
     Symbolizer::LateInitialize();
   }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20911.59380.patch
Type: text/x-patch
Size: 1517 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160602/20e2ceed/attachment.bin>


More information about the llvm-commits mailing list