mirror of
git://git.musl-libc.org/musl
synced 2024-12-15 19:25:55 +00:00
2c1f8fd5da
for _Noreturn functions, gcc generates code that trashes the stack frame, and so it makes it impossible to inspect the causes of an assert error in gdb. abort() is not affected (i have not yet investigated why).
20 lines
316 B
C
20 lines
316 B
C
#include <features.h>
|
|
|
|
#undef assert
|
|
|
|
#ifdef NDEBUG
|
|
#define assert(x) (void)0
|
|
#else
|
|
#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0)))
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void __assert_fail (const char *, const char *, int, const char *);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|