Bugpoint support for miscompilations that result in a crash.

This change allows bugpoint to pinpoint the "opt" pass and bitcode
segment responsible for a crash caused by miscompilation. At least it
works well for me now, without having to create any custom execution
wrappers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131186 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Trick
2011-05-11 16:31:24 +00:00
parent de5d5ded64
commit 7c863eb8cc
6 changed files with 33 additions and 11 deletions

View File

@@ -298,7 +298,8 @@ Program::Execute(const Path &path, const char **args, const char **envp,
int
Program::Wait(const sys::Path &path,
unsigned secondsToWait,
std::string* ErrMsg)
std::string* ErrMsg,
const char* SignalPrefix)
{
#ifdef HAVE_SYS_WAIT_H
struct sigaction Act, Old;
@@ -376,7 +377,9 @@ Program::Wait(const sys::Path &path,
}
} else if (WIFSIGNALED(status)) {
if (ErrMsg) {
*ErrMsg = strsignal(WTERMSIG(status));
if (SignalPrefix)
*ErrMsg = SignalPrefix;
*ErrMsg += strsignal(WTERMSIG(status));
#ifdef WCOREDUMP
if (WCOREDUMP(status))
*ErrMsg += " (core dumped)";