[llvm-commits] [llvm] r55120 - in /llvm/trunk/tools: llc/llc.cpp lto/LTOCodeGenerator.cpp

Dan Gohman gohman at apple.com
Thu Aug 21 08:33:53 PDT 2008


Author: djg
Date: Thu Aug 21 10:33:45 2008
New Revision: 55120

URL: http://llvm.org/viewvc/llvm-project?rev=55120&view=rev
Log:
Don't silently ignore errors when opening output streams.

Modified:
    llvm/trunk/tools/llc/llc.cpp
    llvm/trunk/tools/lto/LTOCodeGenerator.cpp

Modified: llvm/trunk/tools/llc/llc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/llc.cpp?rev=55120&r1=55119&r2=55120&view=diff

==============================================================================
--- llvm/trunk/tools/llc/llc.cpp (original)
+++ llvm/trunk/tools/llc/llc.cpp Thu Aug 21 10:33:45 2008
@@ -125,7 +125,14 @@
     sys::RemoveFileOnSignal(sys::Path(OutputFilename));
 
     std::string error;
-    return new raw_fd_ostream(OutputFilename.c_str(), error);
+    raw_ostream *Out = new raw_fd_ostream(OutputFilename.c_str(), error);
+    if (!error.empty()) {
+      std::cerr << error << '\n';
+      delete Out;
+      return 0;
+    }
+
+    return Out;
   }
   
   if (InputFilename == "-") {
@@ -170,7 +177,7 @@
   std::string error;
   raw_ostream *Out = new raw_fd_ostream(OutputFilename.c_str(), error);
   if (!error.empty()) {
-    std::cerr << error;
+    std::cerr << error << '\n';
     delete Out;
     return 0;
   }

Modified: llvm/trunk/tools/lto/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/LTOCodeGenerator.cpp?rev=55120&r1=55119&r2=55120&view=diff

==============================================================================
--- llvm/trunk/tools/lto/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/tools/lto/LTOCodeGenerator.cpp Thu Aug 21 10:33:45 2008
@@ -163,10 +163,11 @@
     sys::RemoveFileOnSignal(uniqueAsmPath);
        
     // generate assembly code
-    std::string error;
     bool genResult = false;
     {
-      raw_fd_ostream asmFile(uniqueAsmPath.c_str(), error);
+      raw_fd_ostream asmFile(uniqueAsmPath.c_str(), errMsg);
+      if (!errMsg.empty())
+        return NULL;
       genResult = this->generateAssemblyCode(asmFile, errMsg);
     }
     if ( genResult ) {





More information about the llvm-commits mailing list