1 #include <features.h> 2 3 #undef assert 4 5 #ifdef NDEBUG 6 #define assert(x) (void)0 7 #else 8 #define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0))) 9 #endif 10 11 #define DEBUGASSERT(x) assert(x) 12 13 #if __STDC_VERSION__ >= 201112L && !defined(__cplusplus) 14 #define static_assert _Static_assert 15 #endif 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 _Noreturn void __assert_fail (const char *, const char *, int, const char *); 22 23 #ifdef __cplusplus 24 } 25 #endif 26