diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/ruby/common/Debug.hh | 81 | ||||
-rw-r--r-- | src/mem/slicc/ast/FuncCallExprAST.py | 4 |
2 files changed, 36 insertions, 49 deletions
diff --git a/src/mem/ruby/common/Debug.hh b/src/mem/ruby/common/Debug.hh index 7005d95f7..8a2b75de3 100644 --- a/src/mem/ruby/common/Debug.hh +++ b/src/mem/ruby/common/Debug.hh @@ -122,60 +122,45 @@ operator<<(std::ostream& out, const Debug& obj) const bool ERROR_MESSAGE_FLAG = true; const bool WARNING_MESSAGE_FLAG = true; -#ifdef RUBY_NO_ASSERT -const bool ASSERT_FLAG = false; -#else -const bool ASSERT_FLAG = true; -#endif - #undef assert #define assert(EXPR) ASSERT(EXPR) #undef ASSERT -#define ASSERT(EXPR) do { \ - using namespace std; \ - if (ASSERT_FLAG) { \ - if (!(EXPR)) { \ - cerr << "failed assertion '" \ - << #EXPR << "' at fn " \ - << __PRETTY_FUNCTION__ << " in " \ - << __FILE__ << ":" \ - << __LINE__ << endl << flush; \ - (*debug_cout_ptr) << "failed assertion '" \ - << #EXPR << "' at fn " \ - << __PRETTY_FUNCTION__ << " in " \ - << __FILE__ << ":" \ - << __LINE__ << endl << flush; \ - if (isatty(STDIN_FILENO)) { \ - cerr << "At this point you might want to attach a debug to " \ - << "the running and get to the" << endl \ - << "crash site; otherwise press enter to continue" \ - << endl \ - << "PID: " << getpid() \ - << endl << flush; \ - char c; \ - cin.get(c); \ - } \ - abort(); \ - } \ - } \ -} while (0) -#define BREAK(X) do { \ - using namespace std; \ - cerr << "breakpoint '" \ - << #X << "' reached at fn " \ - << __PRETTY_FUNCTION__ << " in " \ - << __FILE__ << ":" \ - << __LINE__ << endl << flush; \ - if(isatty(STDIN_FILENO)) { \ - cerr << "press enter to continue" << endl; \ - cerr << "PID: " << getpid(); \ - cerr << endl << flush; \ - char c; \ - cin.get(c); \ - } \ +#ifndef NDEBUG + +#define ASSERT(EXPR) do { \ + using namespace std; \ + if (!(EXPR)) { \ + cerr << "failed assertion '" \ + << #EXPR << "' at fn " \ + << __PRETTY_FUNCTION__ << " in " \ + << __FILE__ << ":" \ + << __LINE__ << endl << flush; \ + (*debug_cout_ptr) << "failed assertion '" \ + << #EXPR << "' at fn " \ + << __PRETTY_FUNCTION__ << " in " \ + << __FILE__ << ":" \ + << __LINE__ << endl << flush; \ + if (isatty(STDIN_FILENO)) { \ + cerr << "At this point you might want to attach a debug to " \ + << "the running and get to the" << endl \ + << "crash site; otherwise press enter to continue" \ + << endl \ + << "PID: " << getpid() \ + << endl << flush; \ + char c; \ + cin.get(c); \ + } \ + abort(); \ + } \ } while (0) +#else + +#define ASSERT(EXPR) do {} while (0) + +#endif // NDEBUG + #define ERROR_MSG(MESSAGE) do { \ using namespace std; \ if (ERROR_MESSAGE_FLAG) { \ diff --git a/src/mem/slicc/ast/FuncCallExprAST.py b/src/mem/slicc/ast/FuncCallExprAST.py index 830b10c21..829203d53 100644 --- a/src/mem/slicc/ast/FuncCallExprAST.py +++ b/src/mem/slicc/ast/FuncCallExprAST.py @@ -165,9 +165,11 @@ class FuncCallExprAST(ExprAST): elif self.proc_name == "assert": error = self.exprs[0].embedError('"assert failure"') code(''' -if (ASSERT_FLAG && !(${{cvec[0]}})) { +#ifndef NDEBUG +if (!(${{cvec[0]}})) { $error } +#endif ''') elif self.proc_name == "continueProcessing": |