]> granicus.if.org Git - clang/commitdiff
Fix rdar://5843510 don't assert and die when an invalid output
authorChris Lattner <sabre@nondot.org>
Fri, 11 Apr 2008 06:14:11 +0000 (06:14 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 11 Apr 2008 06:14:11 +0000 (06:14 +0000)
file is specified, print a happy little error message.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49518 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/PrintPreprocessedOutput.cpp

index 68a2f954ed9c1e7b51fd2719a10b8ec03bcace55..105e99e9c481f16a497ae7b729eadde1cc99e858 100644 (file)
@@ -60,8 +60,14 @@ static void InitOutputBuffer(const std::string& Output) {
   if (!Output.size() || Output == "-")
     OutputFILE = stdout;
   else {
-    OutputFILE = fopen(Output.c_str(), "w+");
     OutputFilename = Output;
+    OutputFILE = fopen(Output.c_str(), "w+");
+    
+    if (OutputFILE == 0) {
+      fprintf(stderr, "Error opening output file '%s'.\n", Output.c_str());
+      exit(1);
+    }
+    
   }
 
   assert(OutputFILE && "failed to open output file");
@@ -73,11 +79,13 @@ static void InitOutputBuffer(const std::string& Output) {
   if (!Output.size() || Output == "-")
     OutputFD = STDOUT_FILENO;
   else {
-    OutputFD = open(Output.c_str(), O_WRONLY|O_CREAT|O_TRUNC, 0644);
     OutputFilename = Output;
+    OutputFD = open(Output.c_str(), O_WRONLY|O_CREAT|O_TRUNC, 0644);
+    if (OutputFD < 0) {
+      fprintf(stderr, "Error opening output file '%s'.\n", Output.c_str());
+      exit(1);
+    }
   }
-
-  assert(OutputFD >= 0 && "failed to open output file");
 #endif
 }