diff options
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp index 0c7aec4ac69..ef8e60d5a1f 100644 --- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp @@ -2201,10 +2201,8 @@ bool AddressSanitizerModule::InstrumentGlobals(IRBuilder<> &IRB, Module &M, bool GlobalAlias::create(GlobalValue::PrivateLinkage, "", NewGlobal); } - // ODR check is not useful for the following, but we see false reports - // caused by linker optimizations. - if (NewGlobal->hasLocalLinkage() || NewGlobal->hasLinkOnceODRLinkage() || - NewGlobal->hasWeakODRLinkage()) { + // ODR should not happen for local linkage. + if (NewGlobal->hasLocalLinkage()) { ODRIndicator = ConstantExpr::getIntToPtr(ConstantInt::get(IntptrTy, -1), IRB.getInt8PtrTy()); } else if (UseOdrIndicator) { |