#ifndef _ASSERT_H #define _ASSERT_H #ifdef __cplusplus extern "C" { #endif #ifndef __MLIBC_ABI_ONLY // NOTE: This is not ISO C. Declared in LSB __attribute__ ((__noreturn__)) void __assert_fail(const char *assertion, const char *file, unsigned int line, const char *function); #endif /* !__MLIBC_ABI_ONLY */ #ifdef __cplusplus } #endif #endif // _ASSERT_H #include #if __MLIBC_GLIBC_OPTION # include #endif // NOTE: [7.2] requires this be outside the include guard #ifdef NDEBUG #undef assert #define assert(ignore) ((void)0) #else // NDEBUG #undef assert #define assert(assertion) ((void)((assertion) \ || (__assert_fail(#assertion, __FILE__, __LINE__, __func__), 0))) #endif // NDEBUG #ifndef __cplusplus #undef static_assert #define static_assert _Static_assert #endif