#ifndef __ASSERT_H #define __ASSERT_H #ifdef NDEBUG #define assert(ignore) ((void)0) #else #define assert(__expr) \ ((__expr) ? \ (void)0 : \ __assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, #__expr)) #endif _Noreturn void __assert(const char *_Nonnull __file, int __line, const char *_Nonnull __func, const char *_Nonnull __expr); #endif