summaryrefslogtreecommitdiff
path: root/tools/llc
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-08-21 15:33:45 +0000
committerDan Gohman <gohman@apple.com>2008-08-21 15:33:45 +0000
commited3e8b4ed2a3ab44d316e16a54d963f8927c6783 (patch)
tree5a18e8ff35d13a6594fd42c8ca179d4029859ff1 /tools/llc
parent3b32a23a905c06318ce549c326d1a1b301bd01ee (diff)
downloadllvm-ed3e8b4ed2a3ab44d316e16a54d963f8927c6783.tar.gz
llvm-ed3e8b4ed2a3ab44d316e16a54d963f8927c6783.tar.bz2
llvm-ed3e8b4ed2a3ab44d316e16a54d963f8927c6783.tar.xz
Don't silently ignore errors when opening output streams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55120 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llc')
-rw-r--r--tools/llc/llc.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index 2c725e8a2f..03972b10ca 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -125,7 +125,14 @@ static raw_ostream *GetOutputStream(const char *ProgName) {
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 @@ static raw_ostream *GetOutputStream(const char *ProgName) {
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;
}