debug_assert

This commit is contained in:
dzaima 2025-05-11 20:29:01 +03:00
parent 41c9a51ff3
commit 09aa7b285f

View File

@ -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()