summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2013-03-26 23:41:30 +0000
committerChad Rosier <mcrosier@apple.com>2013-03-26 23:41:30 +0000
commitd14757751f4a6aeee2a7ff473eed2f19a579dbe4 (patch)
tree73cc677b45567fab4320efd8c8f729d9d5a31d1b /clang/lib
parent45bb4834e9671a5c106709cfcd23560d293d0646 (diff)
downloadbcm5719-llvm-d14757751f4a6aeee2a7ff473eed2f19a579dbe4.tar.gz
bcm5719-llvm-d14757751f4a6aeee2a7ff473eed2f19a579dbe4.zip
[driver] Do not generate crash diagnostics if the compilation command failed
to execute as the crash will surely reoccur while generating the diagnostics. rdar://13362359 llvm-svn: 178089
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/Compilation.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp
index db948a5bfe9..1bff4a3d7a7 100644
--- a/clang/lib/Driver/Compilation.cpp
+++ b/clang/lib/Driver/Compilation.cpp
@@ -290,11 +290,12 @@ int Compilation::ExecuteCommand(const Command &C,
}
std::string Error;
+ bool ExecutionFailed;
int Res =
llvm::sys::Program::ExecuteAndWait(Prog, Argv,
/*env*/0, Redirects,
/*secondsToWait*/0, /*memoryLimit*/0,
- &Error);
+ &Error, &ExecutionFailed);
if (!Error.empty()) {
assert(Res && "Error string set with 0 result code!");
getDriver().Diag(clang::diag::err_drv_command_failure) << Error;
@@ -304,7 +305,7 @@ int Compilation::ExecuteCommand(const Command &C,
FailingCommand = &C;
delete[] Argv;
- return Res;
+ return ExecutionFailed ? 1 : Res;
}
typedef SmallVectorImpl< std::pair<int, const Command *> > FailingCommandList;
OpenPOWER on IntegriCloud