diff options
Diffstat (limited to 'mdk-stage1/dietlibc/include/assert.h')
-rw-r--r-- | mdk-stage1/dietlibc/include/assert.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/mdk-stage1/dietlibc/include/assert.h b/mdk-stage1/dietlibc/include/assert.h index bb573d0f2..a8ce3ce87 100644 --- a/mdk-stage1/dietlibc/include/assert.h +++ b/mdk-stage1/dietlibc/include/assert.h @@ -4,24 +4,35 @@ #include <sys/cdefs.h> /* This prints an "Assertion failed" message and aborts. */ -extern void __assert_fail (__const char *__assertion, __const char *__file, - unsigned int __line, __const char *__function) +extern void __assert_fail (const char *__assertion, const char *__file, + unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); #ifdef __PRETTY_FUNCTION__ #define __ASSERT_FUNCTION __PRETTY_FUNCTION__ #else -#define __ASSERT_FUNCTION __func__ +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __ASSERT_FUNCTION __func__ +# else +# define __ASSERT_FUNCTION ((const char *) 0) +# endif #endif #undef assert #ifdef NDEBUG #define assert(expr) #else +#ifdef expect +# define assert(expr) \ + ((void) (expect((long)(expr),0) ? 0 : \ + (__assert_fail (#expr, \ + __FILE__, __LINE__, __ASSERT_FUNCTION), 0))) +#else # define assert(expr) \ ((void) ((expr) ? 0 : \ (__assert_fail (#expr, \ __FILE__, __LINE__, __ASSERT_FUNCTION), 0))) #endif +#endif #endif |