Skip to content

Commit 379ef35

Browse files
committed
Properly handle the possible llvm::Error coming from llvm::Expected.
1 parent b2953dc commit 379ef35

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

lib/Interpreter/CppInterOp.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -816,13 +816,12 @@ namespace Cpp {
816816
};
817817

818818
if (auto *FD = llvm::dyn_cast_or_null<FunctionDecl>(D)) {
819-
if (auto FDAorErr =
820-
compat::getSymbolAddress(*I, StringRef(get_mangled_name(FD)))) {
821-
return reinterpret_cast<TCppFuncAddr_t>(*FDAorErr);
822-
} else { // Hangle Err
823-
llvm::logAllUnhandledErrors(FDAorErr.takeError(), llvm::errs(),
819+
auto FDAorErr =
820+
compat::getSymbolAddress(*I, StringRef(get_mangled_name(FD)));
821+
if (llvm::Error Err = FDAorErr.takeError())
822+
llvm::logAllUnhandledErrors(std::move(Err), llvm::errs(),
824823
"Failed to GetFunctionAdress:");
825-
}
824+
return llvm::jitTargetAddressToPointer<void *>(*FDAorErr);
826825
}
827826

828827
return 0;

0 commit comments

Comments
 (0)