Fix refactoro, clang-cc wasn't properly reporting errors when opening an output file failed.

llvm-svn: 89502
This commit is contained in:
Daniel Dunbar 2009-11-20 22:32:38 +00:00
parent 32164f4bdb
commit 2eaef18e76
2 changed files with 9 additions and 5 deletions

View File

@ -321,7 +321,7 @@ CompilerInstance::createOutputFile(llvm::StringRef OutputPath,
&OutputPathName); &OutputPathName);
if (!OS) { if (!OS) {
// FIXME: Don't fail this way. // FIXME: Don't fail this way.
llvm::errs() << "ERROR: " << Error << "\n"; llvm::errs() << "error: " << Error << "\n";
::exit(1); ::exit(1);
} }
@ -353,16 +353,16 @@ CompilerInstance::createOutputFile(llvm::StringRef OutputPath,
OutFile = "-"; OutFile = "-";
} }
llvm::raw_fd_ostream *OS = llvm::OwningPtr<llvm::raw_fd_ostream> OS(
new llvm::raw_fd_ostream(OutFile.c_str(), Error, new llvm::raw_fd_ostream(OutFile.c_str(), Error,
(Binary ? llvm::raw_fd_ostream::F_Binary : 0)); (Binary ? llvm::raw_fd_ostream::F_Binary : 0)));
if (!OS) if (!Error.empty())
return 0; return 0;
if (ResultPathName) if (ResultPathName)
*ResultPathName = OutFile; *ResultPathName = OutFile;
return OS; return OS.take();
} }
// Initialization Utilities // Initialization Utilities

View File

@ -0,0 +1,4 @@
// RUN: not clang-cc -emit-llvm -o %S/doesnotexist/somename %s 2> %t
// RUN: FileCheck -check-prefix=OUTPUTFAIL -input-file=%t %s
// OUTPUTFAIL: Error opening output file '{{.*}}doesnotexist{{.*}}'