mirror of
https://github.com/tailix/libkernaux.git
synced 2025-06-02 18:21:48 -04:00
Conditional asserts as public API
This commit is contained in:
parent
ac31273c8d
commit
ecba475c06
7 changed files with 58 additions and 64 deletions
|
@ -5,8 +5,25 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define kernaux_assert(cond) \
|
||||
#ifdef KERNAUX_ENABLE_ASSERT
|
||||
#define KERNAUX_ASSERT(cond) \
|
||||
((cond) ? (void)0 : kernaux_assert_do(__FILE__, __LINE__, #cond))
|
||||
#else
|
||||
#define KERNAUX_ASSERT(cond) ((void)sizeof((cond)))
|
||||
#endif
|
||||
|
||||
#define KERNAUX_ASSERT_RETURN(cond) \
|
||||
{ KERNAUX_ASSERT(cond); if (!(cond)) return; }
|
||||
#define KERNAUX_ASSERT_RETVAL(cond, val) \
|
||||
{ KERNAUX_ASSERT(cond); if (!(cond)) return (val); }
|
||||
|
||||
#ifdef KERNAUX_ENABLE_NULL_GUARD
|
||||
#define KERNAUX_NOTNULL_RETURN(cond) { KERNAUX_ASSERT_RETURN(cond); }
|
||||
#define KERNAUX_NOTNULL_RETVAL(cond, val) { KERNAUX_ASSERT_RETVAL(cond, val); }
|
||||
#else
|
||||
#define KERNAUX_NOTNULL_RETURN(cond) { KERNAUX_ASSERT(cond); }
|
||||
#define KERNAUX_NOTNULL_RETVAL(cond, val) { KERNAUX_ASSERT(cond); }
|
||||
#endif
|
||||
|
||||
void kernaux_assert_do(const char *file, int line, const char *str);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue