summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-01-19 22:24:13 +0000
committerLang Hames <lhames@gmail.com>2018-01-19 22:24:13 +0000
commitb72f48452c528daf3b9fb7604a640e4e14e3f405 (patch)
treeed672be7baa3b1306f83f9f64f2b35d5fd18b6c8 /llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
parent8b2faeed022dc14b838416e12754d8d9c3074195 (diff)
downloadbcm5719-llvm-b72f48452c528daf3b9fb7604a640e4e14e3f405.tar.gz
bcm5719-llvm-b72f48452c528daf3b9fb7604a640e4e14e3f405.zip
[ORC] Re-apply r322913 with a fix for a read-after-free error.
ExternalSymbolMap now stores the string key (rather than using a StringRef), as the object file backing the key may be removed at any time. llvm-svn: 323001
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h17
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
index 1dc8d4ac7bc..166d1369c72 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
+++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
@@ -138,7 +138,7 @@ class OrcMCJITReplacement : public ExecutionEngine {
std::shared_ptr<MCJITMemoryManager> ClientMM;
};
- class LinkingResolver : public JITSymbolResolver {
+ class LinkingResolver : public LegacyJITSymbolResolver {
public:
LinkingResolver(OrcMCJITReplacement &M) : M(M) {}
@@ -160,20 +160,19 @@ private:
static ExecutionEngine *
createOrcMCJITReplacement(std::string *ErrorMsg,
std::shared_ptr<MCJITMemoryManager> MemMgr,
- std::shared_ptr<JITSymbolResolver> Resolver,
+ std::shared_ptr<LegacyJITSymbolResolver> Resolver,
std::unique_ptr<TargetMachine> TM) {
return new OrcMCJITReplacement(std::move(MemMgr), std::move(Resolver),
std::move(TM));
}
public:
- OrcMCJITReplacement(
- std::shared_ptr<MCJITMemoryManager> MemMgr,
- std::shared_ptr<JITSymbolResolver> ClientResolver,
- std::unique_ptr<TargetMachine> TM)
+ OrcMCJITReplacement(std::shared_ptr<MCJITMemoryManager> MemMgr,
+ std::shared_ptr<LegacyJITSymbolResolver> ClientResolver,
+ std::unique_ptr<TargetMachine> TM)
: ExecutionEngine(TM->createDataLayout()), TM(std::move(TM)),
- MemMgr(std::make_shared<MCJITReplacementMemMgr>(*this,
- std::move(MemMgr))),
+ MemMgr(
+ std::make_shared<MCJITReplacementMemMgr>(*this, std::move(MemMgr))),
Resolver(std::make_shared<LinkingResolver>(*this)),
ClientResolver(std::move(ClientResolver)), NotifyObjectLoaded(*this),
NotifyFinalized(*this),
@@ -378,7 +377,7 @@ private:
std::unique_ptr<TargetMachine> TM;
std::shared_ptr<MCJITReplacementMemMgr> MemMgr;
std::shared_ptr<LinkingResolver> Resolver;
- std::shared_ptr<JITSymbolResolver> ClientResolver;
+ std::shared_ptr<LegacyJITSymbolResolver> ClientResolver;
Mangler Mang;
// IMPORTANT: ShouldDelete *must* come before LocalModules: The shared_ptr
OpenPOWER on IntegriCloud