Fix a bug introduced during refactoring a couple of months ago. Cortex-M3 does not...
[oota-llvm.git] / lib / Linker / LinkItems.cpp
index 7716b61a79456b118560e63d70b837c113c97709..52a0d175a5cdd8bd66a81b04b05279bc46eea4a4 100644 (file)
@@ -161,14 +161,13 @@ bool Linker::LinkInFile(const sys::Path &File, bool &is_native) {
   // Check for a file of name "-", which means "read standard input"
   if (File.str() == "-") {
     std::auto_ptr<Module> M;
+    OwningPtr<MemoryBuffer> Buffer;
     error_code ec;
-    if (MemoryBuffer *Buffer = MemoryBuffer::getSTDIN(ec)) {
+    if (!(ec = MemoryBuffer::getSTDIN(Buffer))) {
       if (!Buffer->getBufferSize()) {
-        delete Buffer;
         Error = "standard input is empty";
       } else {
-        M.reset(ParseBitcodeFile(Buffer, Context, &Error));
-        delete Buffer;
+        M.reset(ParseBitcodeFile(Buffer.get(), Context, &Error));
         if (M.get())
           if (!LinkInModule(M.get(), &Error))
             return false;