diff options
Diffstat (limited to 'lib/zassert.h')
-rw-r--r-- | lib/zassert.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/zassert.h b/lib/zassert.h new file mode 100644 index 00000000..77ebf5d3 --- /dev/null +++ b/lib/zassert.h @@ -0,0 +1,23 @@ +#ifndef _QUAGGA_ASSERT_H +#define _QUAGGA_ASSERT_H + +extern void _zlog_assert_failed (const char *assertion, const char *file, + unsigned int line, const char *function) + __attribute__ ((noreturn)); + +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define __ASSERT_FUNCTION __func__ +#elif defined(__GNUC__) +#define __ASSERT_FUNCTION __FUNCTION__ +#else +#define __ASSERT_FUNCTION NULL +#endif + +#define zassert(EX) ((void)((EX) ? 0 : \ + (_zlog_assert_failed(#EX, __FILE__, __LINE__, \ + __ASSERT_FUNCTION), 0))) + +#undef assert +#define assert(EX) zassert(EX) + +#endif /* _QUAGGA_ASSERT_H */ |