From a9c929e18f37474960a151f82db2876ce860ff85 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Tue, 30 Aug 2016 21:29:48 +0000 Subject: [PATCH] [ORC][RPC] Fix some bugs in the callB primitive. Still no unit test due to synchronization bugs on s390. These issues were discovered in an out-of-tree utility. llvm-svn: 280163 --- llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h b/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h index 2e7b7b8..f061fff 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h @@ -536,13 +536,13 @@ public: /// handling responses and incoming calls. template typename Func::ErrorReturn callB(ChannelT &C, const ArgTs &... Args) { - if (auto FutureResOrErr = callNBWithSeq(C, Args...)) { + if (auto FutureResOrErr = callNBWithSeq(C, Args...)) { if (auto Err = C.send()) { abandonOutstandingResults(); - Func::consumeAbandoned(*FutureResOrErr); + Func::consumeAbandoned(FutureResOrErr->first); return std::move(Err); } - return FutureResOrErr->get(); + return FutureResOrErr->first.get(); } else return FutureResOrErr.takeError(); } -- 2.7.4