aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/c.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/include/c.h b/src/include/c.h
index 2a082afab11..f461628a24e 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -755,7 +755,7 @@ typedef NameData *Name;
#define Trap(condition, errorType) \
do { \
if (condition) \
- ExceptionalCondition(CppAsString(condition), (errorType), \
+ ExceptionalCondition(#condition, (errorType), \
__FILE__, __LINE__); \
} while (0)
@@ -768,20 +768,34 @@ typedef NameData *Name;
*/
#define TrapMacro(condition, errorType) \
((bool) (! (condition) || \
- (ExceptionalCondition(CppAsString(condition), (errorType), \
+ (ExceptionalCondition(#condition, (errorType), \
__FILE__, __LINE__), 0)))
#define Assert(condition) \
- Trap(!(condition), "FailedAssertion")
+ do { \
+ if (!(condition)) \
+ ExceptionalCondition(#condition, "FailedAssertion", \
+ __FILE__, __LINE__); \
+ } while (0)
#define AssertMacro(condition) \
- ((void) TrapMacro(!(condition), "FailedAssertion"))
+ ((void) ((condition) || \
+ (ExceptionalCondition(#condition, "FailedAssertion", \
+ __FILE__, __LINE__), 0)))
#define AssertArg(condition) \
- Trap(!(condition), "BadArgument")
+ do { \
+ if (!(condition)) \
+ ExceptionalCondition(#condition, "BadArgument", \
+ __FILE__, __LINE__); \
+ } while (0)
#define AssertState(condition) \
- Trap(!(condition), "BadState")
+ do { \
+ if (!(condition)) \
+ ExceptionalCondition(#condition, "BadState", \
+ __FILE__, __LINE__); \
+ } while (0)
/*
* Check that `ptr' is `bndr' aligned.