#ifdef NDEBUG #define assert(stmt) do {} while (0) #else #define assert(stmt) do { if (!(stmt)) __badassert(__func__, __FILE__, __LINE__); } while (0) #endif _Noreturn void __badassert(const char *func, const char *file, int line);