[ORC] Re-apply 286620 with fixes for the ErrorSuccess class.

llvm-svn: 286639
diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp
index 9c21098..f5a06cf 100644
--- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp
+++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp
@@ -1265,8 +1265,8 @@
   BinopPrecedence['*'] = 40; // highest.
 
   auto TCPChannel = connect();
-  MyRemote Remote = ExitOnErr(MyRemote::Create(*TCPChannel));
-  TheJIT = llvm::make_unique<KaleidoscopeJIT>(Remote);
+  auto Remote = ExitOnErr(MyRemote::Create(*TCPChannel));
+  TheJIT = llvm::make_unique<KaleidoscopeJIT>(*Remote);
 
   // Automatically inject a definition for 'printExprResult'.
   FunctionProtos["printExprResult"] =
@@ -1288,7 +1288,7 @@
   TheJIT = nullptr;
 
   // Send a terminate message to the remote to tell it to exit cleanly.
-  ExitOnErr(Remote.terminateSession());
+  ExitOnErr(Remote->terminateSession());
 
   return 0;
 }