diff options
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h b/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h index 75bda1d589f..4ba41e3d2c9 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h @@ -742,11 +742,16 @@ private: if (ExistingError) return std::move(ExistingError); + // FIXME: CompileCallback could be an anonymous lambda defined at the use + // site below, but that triggers a GCC 4.7 ICE. When we move off + // GCC 4.7, tidy this up. + auto CompileCallback = + [this](TargetAddress Addr) -> Expected<TargetAddress> { + return this->CallbackManager->executeCompileCallback(Addr); + }; + if (Id == RequestCompileId) { - if (auto Err = handle<RequestCompile>( - C, [&](TargetAddress Addr) -> Expected<TargetAddress> { - return CallbackManager->executeCompileCallback(Addr); - })) + if (auto Err = handle<RequestCompile>(C, CompileCallback)) return Err; return Error::success(); } |