This commit is contained in:
Gabe Black 2010-12-08 16:52:38 -08:00
commit 55978f0395
2 changed files with 36 additions and 49 deletions

View file

@ -122,18 +122,14 @@ operator<<(std::ostream& out, const Debug& obj)
const bool ERROR_MESSAGE_FLAG = true; const bool ERROR_MESSAGE_FLAG = true;
const bool WARNING_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 #undef assert
#define assert(EXPR) ASSERT(EXPR) #define assert(EXPR) ASSERT(EXPR)
#undef ASSERT #undef ASSERT
#ifndef NDEBUG
#define ASSERT(EXPR) do { \ #define ASSERT(EXPR) do { \
using namespace std; \ using namespace std; \
if (ASSERT_FLAG) { \
if (!(EXPR)) { \ if (!(EXPR)) { \
cerr << "failed assertion '" \ cerr << "failed assertion '" \
<< #EXPR << "' at fn " \ << #EXPR << "' at fn " \
@ -157,24 +153,13 @@ const bool ASSERT_FLAG = true;
} \ } \
abort(); \ abort(); \
} \ } \
} \
} while (0) } while (0)
#define BREAK(X) do { \ #else
using namespace std; \
cerr << "breakpoint '" \ #define ASSERT(EXPR) do {} while (0)
<< #X << "' reached at fn " \
<< __PRETTY_FUNCTION__ << " in " \ #endif // NDEBUG
<< __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); \
} \
} while (0)
#define ERROR_MSG(MESSAGE) do { \ #define ERROR_MSG(MESSAGE) do { \
using namespace std; \ using namespace std; \

View file

@ -165,9 +165,11 @@ class FuncCallExprAST(ExprAST):
elif self.proc_name == "assert": elif self.proc_name == "assert":
error = self.exprs[0].embedError('"assert failure"') error = self.exprs[0].embedError('"assert failure"')
code(''' code('''
if (ASSERT_FLAG && !(${{cvec[0]}})) { #ifndef NDEBUG
if (!(${{cvec[0]}})) {
$error $error
} }
#endif
''') ''')
elif self.proc_name == "continueProcessing": elif self.proc_name == "continueProcessing":