git-compat-util: introduce ASSERT() macro
Create a ASSERT() macro which is similar to assert(), but will not be compiled out when NDEBUG is defined, and is thus safe to use even if its argument has side-effects. We will use this new macro in a subsequent commit to convert a few existing assert() invocations to ASSERT(). In particular, we'll convert the handful of invocations which cannot be proven to be free of side effects with a simple compiler/linker hack. Signed-off-by: Elijah Newren <newren@gmail.com> Acked-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
683c54c999
commit
07fbc15c20
|
@ -1460,6 +1460,8 @@ extern int bug_called_must_BUG;
|
|||
__attribute__((format (printf, 3, 4))) NORETURN
|
||||
void BUG_fl(const char *file, int line, const char *fmt, ...);
|
||||
#define BUG(...) BUG_fl(__FILE__, __LINE__, __VA_ARGS__)
|
||||
/* ASSERT: like assert(), but won't be compiled out with NDEBUG */
|
||||
#define ASSERT(a) if (!(a)) BUG("Assertion `" #a "' failed.")
|
||||
__attribute__((format (printf, 3, 4)))
|
||||
void bug_fl(const char *file, int line, const char *fmt, ...);
|
||||
#define bug(...) bug_fl(__FILE__, __LINE__, __VA_ARGS__)
|
||||
|
|
Loading…
Reference in New Issue