summaryrefslogtreecommitdiff
path: root/rts/include/Rts.h
diff options
context:
space:
mode:
Diffstat (limited to 'rts/include/Rts.h')
-rw-r--r--rts/include/Rts.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/rts/include/Rts.h b/rts/include/Rts.h
index e3471cf333..2399f8ce7f 100644
--- a/rts/include/Rts.h
+++ b/rts/include/Rts.h
@@ -120,12 +120,20 @@ extern "C" {
void _assertFail(const char *filename, unsigned int linenum)
GNUC3_ATTRIBUTE(__noreturn__);
+void _warnFail(const char *filename, unsigned int linenum);
+
#define CHECK(predicate) \
if (RTS_LIKELY(predicate)) \
/*null*/; \
else \
_assertFail(__FILE__, __LINE__)
+#define CHECKWARN(predicate) \
+ if (RTS_LIKELY(predicate)) \
+ /*null*/; \
+ else \
+ _warnFail(__FILE__, __LINE__)
+
#define CHECKM(predicate, msg, ...) \
if (RTS_LIKELY(predicate)) \
/*null*/; \
@@ -143,11 +151,16 @@ void _assertFail(const char *filename, unsigned int linenum)
do { CHECK(predicate); } while(0)
#define ASSERTM(predicate,msg,...) \
do { CHECKM(predicate, msg, ##__VA_ARGS__); } while(0)
+#define WARN(predicate) \
+ do { CHECKWARN(predicate); } while(0)
+
#else
#define ASSERT(predicate) \
do { (void) sizeof(predicate); } while(0)
#define ASSERTM(predicate,msg,...) \
do { (void) sizeof(predicate); (void) sizeof(msg); } while(0)
+#define WARN(predicate) \
+ do { (void) sizeof(predicate); } while(0)
#endif /* DEBUG */
/*