summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/ruby/common/Debug.hh81
-rw-r--r--src/mem/slicc/ast/FuncCallExprAST.py4
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":