diff options
author | Lang Hames <lhames@gmail.com> | 2016-07-14 20:44:27 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2016-07-14 20:44:27 +0000 |
commit | 69f4902ba685a49e80a8d39998477ee72ca9d53b (patch) | |
tree | d83bb7494fe00b6141adcde74fd9c7184936e02e /llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp | |
parent | 6f73588fb9d1d9f555abd9ef3b44e92ff2d2a1b1 (diff) | |
download | llvm-69f4902ba685a49e80a8d39998477ee72ca9d53b.zip llvm-69f4902ba685a49e80a8d39998477ee72ca9d53b.tar.gz llvm-69f4902ba685a49e80a8d39998477ee72ca9d53b.tar.bz2 |
[Object] Change Archive::findSym to return an Expected<Optional<Child>>.
As suggested by Rafael in review of D22079 - this was accidentally left out of
the final commit (r275316).
llvm-svn: 275469
Diffstat (limited to 'llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp b/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp index 9da0045..7fb328b 100644 --- a/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp +++ b/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp @@ -327,14 +327,14 @@ RuntimeDyld::SymbolInfo MCJIT::findSymbol(const std::string &Name, for (object::OwningBinary<object::Archive> &OB : Archives) { object::Archive *A = OB.getBinary(); // Look for our symbols in each Archive - Error Err; - object::Archive::child_iterator ChildIt = A->findSym(Err, Name); - if (Err) - report_fatal_error(std::move(Err)); - if (ChildIt != A->child_end()) { + auto OptionalChildOrErr = A->findSym(Name); + if (!OptionalChildOrErr) + report_fatal_error(OptionalChildOrErr.takeError()); + auto &OptionalChild = *OptionalChildOrErr; + if (OptionalChild) { // FIXME: Support nested archives? Expected<std::unique_ptr<object::Binary>> ChildBinOrErr = - ChildIt->getAsBinary(); + OptionalChild->getAsBinary(); if (!ChildBinOrErr) { // TODO: Actually report errors helpfully. consumeError(ChildBinOrErr.takeError()); |