forked from OSchip/llvm-project
Make ToolExecutionError inherit std::exception and implement its
interface: getMessage() is gone, use what() instead. llvm-svn: 11621
This commit is contained in:
parent
c94edd6cde
commit
3562c2dd9f
|
@ -18,6 +18,7 @@
|
|||
#define TOOLRUNNER_H
|
||||
|
||||
#include "Support/SystemUtils.h"
|
||||
#include <exception>
|
||||
#include <vector>
|
||||
|
||||
namespace llvm {
|
||||
|
@ -30,11 +31,12 @@ class LLC;
|
|||
/// AbstractInterpreter instances if there is an error running a tool (e.g., LLC
|
||||
/// crashes) which prevents execution of the program.
|
||||
///
|
||||
class ToolExecutionError {
|
||||
class ToolExecutionError : std::exception {
|
||||
std::string Message;
|
||||
public:
|
||||
ToolExecutionError(const std::string &M) : Message(M) {}
|
||||
const std::string getMessage() const { return Message; }
|
||||
explicit ToolExecutionError(const std::string &M) : Message(M) {}
|
||||
virtual ~ToolExecutionError() throw();
|
||||
virtual const char* what() const throw() { return Message.c_str(); }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
#include <sstream>
|
||||
using namespace llvm;
|
||||
|
||||
ToolExecutionError::~ToolExecutionError() throw() { }
|
||||
|
||||
static void ProcessFailure(std::string ProgPath, const char** Args) {
|
||||
std::ostringstream OS;
|
||||
OS << "\nError running tool:\n ";
|
||||
|
|
|
@ -159,7 +159,7 @@ bool BugDriver::run() {
|
|||
CreatedOutput = true;
|
||||
std::cout << "Reference output is: " << ReferenceOutputFile << "\n";
|
||||
} catch (ToolExecutionError &TEE) {
|
||||
std::cerr << TEE.getMessage();
|
||||
std::cerr << TEE.what();
|
||||
if (Interpreter != cbe) {
|
||||
std::cerr << "*** There is a bug running the C backend. Either debug"
|
||||
<< " it (use the -run-cbe bugpoint option), or fix the error"
|
||||
|
@ -183,7 +183,7 @@ bool BugDriver::run() {
|
|||
return debugMiscompilation();
|
||||
}
|
||||
} catch (ToolExecutionError &TEE) {
|
||||
std::cerr << TEE.getMessage();
|
||||
std::cerr << TEE.what();
|
||||
return debugCodeGeneratorCrash();
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ int main(int argc, char **argv) {
|
|||
try {
|
||||
return D.run();
|
||||
} catch (ToolExecutionError &TEE) {
|
||||
std::cerr << "Tool execution error: " << TEE.getMessage() << "\n";
|
||||
std::cerr << "Tool execution error: " << TEE.what() << "\n";
|
||||
return 1;
|
||||
} catch (...) {
|
||||
std::cerr << "Whoops, an exception leaked out of bugpoint. "
|
||||
|
|
Loading…
Reference in New Issue