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>
This commit is contained in:
committed by
Junio C Hamano
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__)
|
||||
|
||||
Reference in New Issue
Block a user