diff --git a/src/h.h b/src/h.h index bb1642d1..3dadc971 100644 --- a/src/h.h +++ b/src/h.h @@ -304,7 +304,9 @@ typedef struct Arr { #if DEBUG NOINLINE NORETURN void assert_fail(char* expr, char* file, int line, const char fn[]); - #define assert(X) do {if (!(X)) assert_fail(#X, __FILE__, __LINE__, __PRETTY_FUNCTION__);} while(0) + #define assert_impl(M, X) do {if (!(X)) assert_fail(M, __FILE__, __LINE__, __PRETTY_FUNCTION__);} while(0) + #define assert(X) assert_impl(#X, X) + #define debug_assert(X) assert_impl(#X, X) B VALIDATE(B x); Value* VALIDATEP(Value* x); #define UD assert(false) @@ -315,6 +317,7 @@ typedef struct Arr { #define NOGC_E cbqn_noAlloc=false #else #define assert(X) do {if (!(X)) __builtin_unreachable();} while(0) + #define debug_assert(X) #define VALIDATE(X) (X) #define VALIDATEP(X) (X) #define UD __builtin_unreachable()