__assert
#define assert(e) ((e) ? (void)0 : __assert(__func__, __FILE__, \
void __assert(const char *, const char *, int, const char *) __dead2;
#define assert(EX) (void)((EX) || (__assert(#EX, __FILE__, __LINE__), 0))
extern _NORETURN_KYWD void __assert(const char *, const char *, int) __NORETURN;
extern void __assert(const char *, const char *, int);
#define assert(EX) (void)((EX) || (__assert(#EX, __FILE__, __LINE__), 0))