diff options
Diffstat (limited to 'tools/bugpoint/ExecutionDriver.cpp')
| -rw-r--r-- | tools/bugpoint/ExecutionDriver.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/bugpoint/ExecutionDriver.cpp b/tools/bugpoint/ExecutionDriver.cpp index 9dc9adf804..ecf9dc8a58 100644 --- a/tools/bugpoint/ExecutionDriver.cpp +++ b/tools/bugpoint/ExecutionDriver.cpp @@ -84,11 +84,12 @@ bool BugDriver::initializeExecutionEnvironment() { // Create an instance of the AbstractInterpreter interface as specified on // the command line + cbe = 0; std::string Message; switch (InterpreterSel) { case AutoPick: InterpreterSel = RunCBE; - Interpreter = AbstractInterpreter::createCBE(getToolName(), Message); + Interpreter = cbe = AbstractInterpreter::createCBE(getToolName(), Message); if (!Interpreter) { InterpreterSel = RunJIT; Interpreter = AbstractInterpreter::createJIT(getToolName(), Message); @@ -116,7 +117,7 @@ bool BugDriver::initializeExecutionEnvironment() { Interpreter = AbstractInterpreter::createJIT(getToolName(), Message); break; case RunCBE: - Interpreter = AbstractInterpreter::createCBE(getToolName(), Message); + Interpreter = cbe = AbstractInterpreter::createCBE(getToolName(), Message); break; default: Message = "Sorry, this back-end is not supported by bugpoint right now!\n"; @@ -125,8 +126,10 @@ bool BugDriver::initializeExecutionEnvironment() { std::cerr << Message; // Initialize auxiliary tools for debugging - cbe = AbstractInterpreter::createCBE(getToolName(), Message); - if (!cbe) { std::cout << Message << "\nExiting.\n"; exit(1); } + if (!cbe) { + cbe = AbstractInterpreter::createCBE(getToolName(), Message); + if (!cbe) { std::cout << Message << "\nExiting.\n"; exit(1); } + } gcc = GCC::create(getToolName(), Message); if (!gcc) { std::cout << Message << "\nExiting.\n"; exit(1); } |
