[PATCH] D50429: [MCJIT] Fix case of Error::success being passed to report_fatal_error.
Jascha Wetzel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 8 03:13:33 PDT 2018
jascha created this revision.
jascha added a reviewer: lhames.
Herald added a subscriber: llvm-commits.
MCJIT::getSymbolAddress was handling a non-fatal error condition of JITSymbol
as fatal. JITSymbol::operator bool returns false if no address is available
but no error is set. This can occur e.g. if the symbol name was not found.
Repository:
rL LLVM
https://reviews.llvm.org/D50429
Files:
lib/ExecutionEngine/MCJIT/MCJIT.cpp
Index: lib/ExecutionEngine/MCJIT/MCJIT.cpp
===================================================================
--- lib/ExecutionEngine/MCJIT/MCJIT.cpp
+++ lib/ExecutionEngine/MCJIT/MCJIT.cpp
@@ -321,13 +321,15 @@
raw_string_ostream MangledNameStream(MangledName);
Mangler::getNameWithPrefix(MangledNameStream, Name, getDataLayout());
}
- if (auto Sym = findSymbol(MangledName, CheckFunctionsOnly)) {
+ auto Sym = findSymbol(MangledName, CheckFunctionsOnly);
+ if (Sym) {
if (auto AddrOrErr = Sym.getAddress())
return *AddrOrErr;
else
report_fatal_error(AddrOrErr.takeError());
- } else
- report_fatal_error(Sym.takeError());
+ } else if (auto err = Sym.takeError())
+ report_fatal_error(std::move(err));
+ return 0;
}
JITSymbol MCJIT::findSymbol(const std::string &Name,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50429.159669.patch
Type: text/x-patch
Size: 824 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180808/25a64284/attachment.bin>
More information about the llvm-commits
mailing list