[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.

llvm-svn: 209790

llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

index ae51179..1730cff 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(