[bugpoint] Report non-existent opt binary

Bugpoint will keep going even if the opt binary it's given doesn't
exist. It should at least alert the user, so it's clear why reductions
are failing.

llvm-svn: 324713
This commit is contained in:
Vedant Kumar 2018-02-09 06:09:15 +00:00
parent 9c6cd0458b
commit 85696ad91d
2 changed files with 6 additions and 0 deletions

View File

@ -4,6 +4,7 @@
; RUN: echo "exit(1)" >> %t.py
; RUN: not bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -opt-command="%python" -opt-args %t.py | FileCheck %s
; RUN: not --crash opt -load %llvmshlibdir/BugpointPasses%shlibext %s -bugpoint-crashcalls -disable-symbolication 2>&1 | FileCheck --check-prefix=CRASH %s
; RUN: not bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -opt-command=%t.non.existent.opt.binary -opt-args %t.py 2>&1 | FileCheck %s --check-prefix=BAD-OPT
; Test that bugpoint disables symbolication on the opt tool to reduce runtime overhead when opt crashes
; CHECK: args = {{.*}}'-disable-symbolication'
@ -15,6 +16,7 @@
; now.
; CRASH-NOT: Signals.inc
; BAD-OPT: Specified `opt' binary does not exist: {{.*}}non.existent.opt.binary
define void @f() {
call void @f()
ret void

View File

@ -177,6 +177,10 @@ bool BugDriver::runPasses(Module *Program,
errs() << "Cannot find `opt' in PATH!\n";
return 1;
}
if (!sys::fs::exists(tool)) {
errs() << "Specified `opt' binary does not exist: " << tool << "\n";
return 1;
}
std::string Prog;
if (UseValgrind) {