aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/TargetMachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/TargetMachine.cpp')
-rw-r--r--llvm/lib/Target/TargetMachine.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp
index f214a47..d9c8945 100644
--- a/llvm/lib/Target/TargetMachine.cpp
+++ b/llvm/lib/Target/TargetMachine.cpp
@@ -163,10 +163,11 @@ bool TargetMachine::shouldAssumeDSOLocal(const Module &M,
// If the symbol is defined, it cannot be preempted.
if (!GV->isDeclarationForLinker())
return true;
- // FIXME asan does not call setDSOLocal appropriately. Fix asan and delete
- // the hack.
+ // FIXME Sanitizers do not call setDSOLocal appropriately. Fix sanitizers
+ // and delete the hack.
if (RM == Reloc::Static && !GV->isThreadLocal() &&
- M.getFunction("asan.module_ctor"))
+ (M.getFunction("asan.module_ctor") ||
+ M.getFunction("memprof.module_ctor")))
return true;
} else if (TT.isOSBinFormatELF()) {
// If dso_local allows AsmPrinter::getSymbolPreferLocal to use a local