summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
index f89f21adff4..4def579e709 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
@@ -125,8 +125,13 @@ OrcMCJITReplacement::runFunction(Function *F,
}
void OrcMCJITReplacement::runStaticConstructorsDestructors(bool isDtors) {
- for (auto &M : LocalModules)
- ExecutionEngine::runStaticConstructorsDestructors(*M, isDtors);
+ auto &CtorDtorsMap = isDtors ? UnexecutedDestructors : UnexecutedConstructors;
+
+ for (auto &KV : CtorDtorsMap)
+ cantFail(CtorDtorRunner<LazyEmitLayerT>(std::move(KV.second), KV.first)
+ .runViaLayer(LazyEmitLayer));
+
+ CtorDtorsMap.clear();
}
} // End namespace orc.
OpenPOWER on IntegriCloud