[ASan] Hoist blacklisting globals from init-order checking to Clang.
authorAlexey Samsonov <vonosmas@gmail.com>
Thu, 29 May 2014 01:44:13 +0000 (01:44 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Thu, 29 May 2014 01:44:13 +0000 (01:44 +0000)
Clang knows about the sanitizer blacklist and it makes no sense to
add global to the list of llvm.asan.dynamically_initialized_globals if it
will be blacklisted in the instrumentation pass anyway. Instead, we should
do as much blacklisting as possible (if not all) in the frontend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209790 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/AddressSanitizer.cpp

index ae51179a30058fb5b795127348b510b684fbd823..1730cff325a25463bcaf2b46ed5ab85db2af4357 100644 (file)
@@ -1069,8 +1069,6 @@ bool AddressSanitizerModule::runOnModule(Module &M) {
     // Determine whether this global should be poisoned in initialization.
     bool GlobalHasDynamicInitializer =
         DynamicallyInitializedGlobals.Contains(G);
-    // Don't check initialization order if this global is blacklisted.
-    GlobalHasDynamicInitializer &= !BL->isIn(*G, "init");
 
     StructType *NewTy = StructType::get(Ty, RightRedZoneTy, NULL);
     Constant *NewInitializer = ConstantStruct::get(