From cee3df1e4b1b8103bf81e5281a46aab7881f93df Mon Sep 17 00:00:00 2001 From: ajs Date: Wed, 24 Nov 2004 17:14:49 +0000 Subject: 2004-11-24 Andrew J. Schorr * zassert.h: New header file to declare a quagga-specific assert macro. * log.c: (_zlog_assert_failed) New function called when assert fails to log the error and abort. * zebra.h: Include "zassert.h" instead of . * regex.c: Include "zassert.h" instead of . * dict.c: Include "zassert.h" instead of . --- lib/zassert.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lib/zassert.h (limited to 'lib/zassert.h') 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 */ -- cgit v1.2.3 From 2cac10935b6e2aabeb480d6769be01d9eec7101f Mon Sep 17 00:00:00 2001 From: ajs Date: Fri, 3 Dec 2004 18:01:04 +0000 Subject: Need RCS Id keyword. --- lib/zassert.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/zassert.h') diff --git a/lib/zassert.h b/lib/zassert.h index 77ebf5d3..79126760 100644 --- a/lib/zassert.h +++ b/lib/zassert.h @@ -1,3 +1,7 @@ +/* + * $Id: zassert.h,v 1.2 2004/12/03 18:01:04 ajs Exp $ + */ + #ifndef _QUAGGA_ASSERT_H #define _QUAGGA_ASSERT_H -- cgit v1.2.3