diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h --- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h @@ -95,7 +95,8 @@ // process fails. if (!Server->ReportError) Server->ReportError = [](Error Err) { - logAllUnhandledErrors(std::move(Err), errs(), "SimpleRemoteEPCServer "); + logAllUnhandledErrors(std::move(Err), errs(), + "SimpleRemoteEPCServer: "); }; // Attempt to create transport. @@ -137,6 +138,11 @@ void handleDisconnect(Error Err) override; + ~SimpleRemoteEPCServer() override { + if (Error Err = waitForDisconnect()) + ReportError(std::move(Err)); + } + private: Error sendMessage(SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, ExecutorAddr TagAddr, ArrayRef ArgBytes);