summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-04-12 18:35:08 +0000
committerLang Hames <lhames@gmail.com>2018-04-12 18:35:08 +0000
commit9d8877baf814019e8dd90536c1abf4428c9bce7d (patch)
treeac2248647c42e4b26b19dc30bc30513a476a4b14 /llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
parentdec781c141831a348df1f537c8f3907d9351a2c8 (diff)
downloadbcm5719-llvm-9d8877baf814019e8dd90536c1abf4428c9bce7d.tar.gz
bcm5719-llvm-9d8877baf814019e8dd90536c1abf4428c9bce7d.zip
[ORC] Plumb error notifications through the VSO interface.
This allows materializers to notify the VSO that they were unable to resolve or finalize symbols. llvm-svn: 329934
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
index af87df9ac34..73af52055e8 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
+++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
@@ -175,25 +175,24 @@ class OrcMCJITReplacement : public ExecutionEngine {
for (auto &S : Symbols) {
if (auto Sym = M.findMangledSymbol(*S)) {
if (auto Addr = Sym.getAddress())
- Query->setDefinition(S, JITEvaluatedSymbol(*Addr, Sym.getFlags()));
+ Query->resolve(S, JITEvaluatedSymbol(*Addr, Sym.getFlags()));
else {
- Query->setFailed(Addr.takeError());
+ Query->notifyFailed(Addr.takeError());
return SymbolNameSet();
}
} else if (auto Err = Sym.takeError()) {
- Query->setFailed(std::move(Err));
+ Query->notifyFailed(std::move(Err));
return SymbolNameSet();
} else {
if (auto Sym2 = M.ClientResolver->findSymbol(*S)) {
if (auto Addr = Sym2.getAddress())
- Query->setDefinition(S,
- JITEvaluatedSymbol(*Addr, Sym2.getFlags()));
+ Query->resolve(S, JITEvaluatedSymbol(*Addr, Sym2.getFlags()));
else {
- Query->setFailed(Addr.takeError());
+ Query->notifyFailed(Addr.takeError());
return SymbolNameSet();
}
} else if (auto Err = Sym2.takeError()) {
- Query->setFailed(std::move(Err));
+ Query->notifyFailed(std::move(Err));
return SymbolNameSet();
} else
UnresolvedSymbols.insert(S);
OpenPOWER on IntegriCloud