MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121958 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp
index 781bca9..7a72cec 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -81,12 +81,13 @@
   std::string ErrorMessage;
   error_code ec;
   std::auto_ptr<Module> M;
+  OwningPtr<MemoryBuffer> BufferPtr;
 
-  if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename, ec)) {
-    M.reset(ParseBitcodeFile(Buffer, Context, &ErrorMessage));
-    delete Buffer;
-  } else
+  if (ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr))
     ErrorMessage = ec.message();
+  else
+    M.reset(ParseBitcodeFile(BufferPtr.get(), Context, &ErrorMessage));
+  MemoryBuffer *Buffer = BufferPtr.take();
 
   if (M.get() == 0) {
     errs() << argv[0] << ": ";