[llvm] 8dea7f3 - [z/OS][AIX] Move lambda definition to fix build problem
David Tenty via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 17 07:08:48 PDT 2020
Author: David Tenty
Date: 2020-07-17T10:08:01-04:00
New Revision: 8dea7f3202a70f71d412ecc2616a1adb81c5c148
URL: https://github.com/llvm/llvm-project/commit/8dea7f3202a70f71d412ecc2616a1adb81c5c148
DIFF: https://github.com/llvm/llvm-project/commit/8dea7f3202a70f71d412ecc2616a1adb81c5c148.diff
LOG: [z/OS][AIX] Move lambda definition to fix build problem
This is a follow on change to eed19bd8 and contains a fix for a build
failure that occurs on both z/OS and AIX as a result of this commit:
https://reviews.llvm.org/rG670915094462d831e3733e5b01a76471b8cf6dd8.
Added:
Modified:
llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
Removed:
################################################################################
diff --git a/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp b/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
index ff1de3810835..5e604130d6ea 100644
--- a/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
@@ -75,31 +75,31 @@ void LazyCallThroughManager::resolveTrampolineLandingAddress(
if (!Entry)
return NotifyLandingResolved(reportCallThroughError(Entry.takeError()));
- // Declaring SLS outside of the call to ES.lookup is a workaround to fix build
- // failures on AIX and on z/OS platforms.
+ // Declaring SLS and the callback outside of the call to ES.lookup is a
+ // workaround to fix build failures on AIX and on z/OS platforms.
SymbolLookupSet SLS({Entry->SymbolName});
+ auto Callback = [this, TrampolineAddr, SymbolName = Entry->SymbolName,
+ NotifyLandingResolved = std::move(NotifyLandingResolved)](
+ Expected<SymbolMap> Result) mutable {
+ if (Result) {
+ assert(Result->size() == 1 && "Unexpected result size");
+ assert(Result->count(SymbolName) && "Unexpected result value");
+ JITTargetAddress LandingAddr = (*Result)[SymbolName].getAddress();
+
+ if (auto Err = notifyResolved(TrampolineAddr, LandingAddr))
+ NotifyLandingResolved(reportCallThroughError(std::move(Err)));
+ else
+ NotifyLandingResolved(LandingAddr);
+ } else {
+ NotifyLandingResolved(reportCallThroughError(Result.takeError()));
+ }
+ };
- ES.lookup(
- LookupKind::Static,
- makeJITDylibSearchOrder(Entry->SourceJD,
- JITDylibLookupFlags::MatchAllSymbols),
- std::move(SLS), SymbolState::Ready,
- [this, TrampolineAddr, SymbolName = Entry->SymbolName,
- NotifyLandingResolved = std::move(NotifyLandingResolved)](
- Expected<SymbolMap> Result) mutable {
- if (Result) {
- assert(Result->size() == 1 && "Unexpected result size");
- assert(Result->count(SymbolName) && "Unexpected result value");
- JITTargetAddress LandingAddr = (*Result)[SymbolName].getAddress();
-
- if (auto Err = notifyResolved(TrampolineAddr, LandingAddr))
- NotifyLandingResolved(reportCallThroughError(std::move(Err)));
- else
- NotifyLandingResolved(LandingAddr);
- } else
- NotifyLandingResolved(reportCallThroughError(Result.takeError()));
- },
- NoDependenciesToRegister);
+ ES.lookup(LookupKind::Static,
+ makeJITDylibSearchOrder(Entry->SourceJD,
+ JITDylibLookupFlags::MatchAllSymbols),
+ std::move(SLS), SymbolState::Ready, std::move(Callback),
+ NoDependenciesToRegister);
}
Expected<std::unique_ptr<LazyCallThroughManager>>
More information about the llvm-commits
mailing list