|
@@ -34,7 +34,11 @@ __BEGIN_DECLS
|
|
|
__attribute__((noreturn)) void __assertion_failed(const char* msg);
|
|
|
# define __stringify_helper(x) # x
|
|
|
# define __stringify(x) __stringify_helper(x)
|
|
|
-# define assert(expr) ((expr) ? (void)0 : __assertion_failed(# expr "\n" __FILE__ ":" __stringify(__LINE__)));
|
|
|
+# define assert(expr) \
|
|
|
+ do { \
|
|
|
+ if (__builtin_expect(!(expr), 0)) \
|
|
|
+ __assertion_failed(#expr "\n" __FILE__ ":" __stringify(__LINE__)); \
|
|
|
+ } while (0)
|
|
|
# define ASSERT_NOT_REACHED() assert(false)
|
|
|
#else
|
|
|
# define assert(expr)
|