summaryrefslogtreecommitdiffstats
path: root/llvm
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
commitf3e13bbd4dd3b9bd501b448b7e5762f05c875071 (patch)
treeb2173d33bbd958e82ced1835a154a3335db2951f /llvm
parentb2fc05227c376f2efb833dcb132fc8a1f7a03855 (diff)
downloadbcm5719-llvm-f3e13bbd4dd3b9bd501b448b7e5762f05c875071.tar.gz
bcm5719-llvm-f3e13bbd4dd3b9bd501b448b7e5762f05c875071.zip
Don't silently ignore errors when opening output streams.
llvm-svn: 55120
Diffstat (limited to 'llvm')
-rw-r--r--llvm/tools/llc/llc.cpp11
-rw-r--r--llvm/tools/lto/LTOCodeGenerator.cpp5
2 files changed, 12 insertions, 4 deletions
diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp
index 2c725e8a2f1..03972b10ca7 100644
--- a/llvm/tools/llc/llc.cpp
+++ b/llvm/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;
}
diff --git a/llvm/tools/lto/LTOCodeGenerator.cpp b/llvm/tools/lto/LTOCodeGenerator.cpp
index 275aac208f3..c035be99873 100644
--- a/llvm/tools/lto/LTOCodeGenerator.cpp
+++ b/llvm/tools/lto/LTOCodeGenerator.cpp
@@ -163,10 +163,11 @@ const void* LTOCodeGenerator::compile(size_t* length, std::string& errMsg)
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 ) {
OpenPOWER on IntegriCloud