#ifdef NDEBUG #define assert(stmt) ((void)0) #else #define assert(stmt) (void)((stmt) || (__badassert(__func__, __FILE__, __LINE__),0)) #endif #ifdef __SPARSE #undef assert #define assert(stmt) (0) #endif #define static_assert _Static_assert _Noreturn void __badassert(const char *func, const char *file, int line);