134518d796ddf8f80c8f7e1ae3c8f2fe981fdbaf
[olsrd.git] / lib / quagga / src / quagga / zassert.h
1
2 /*
3  */
4
5 #ifndef _QUAGGA_ASSERT_H
6 #define _QUAGGA_ASSERT_H
7
8 extern void _zlog_assert_failed(const char *assertion, const char *file, unsigned int line, const char *function)
9   __attribute__ ((noreturn));
10
11 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
12 #define __ASSERT_FUNCTION    __func__
13 #elif defined(__GNUC__)
14 #define __ASSERT_FUNCTION    __FUNCTION__
15 #else
16 #define __ASSERT_FUNCTION    NULL
17 #endif
18
19 #define zassert(EX) ((void)((EX) ?  0 : \
20                             (_zlog_assert_failed(#EX, __FILE__, __LINE__, \
21                                                  __ASSERT_FUNCTION), 0)))
22
23 #undef assert
24 #define assert(EX) zassert(EX)
25
26 #endif /* _QUAGGA_ASSERT_H */
27
28 /*
29  * Local Variables:
30  * c-basic-offset: 2
31  * indent-tabs-mode: nil
32  * End:
33  */