[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
This commit is contained in:
Chad Rosier 2013-03-26 23:41:30 +00:00
parent 45bb4834e9
commit d14757751f
1 changed files with 3 additions and 2 deletions

View File

@ -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;