diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:06:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:06:04 +0000 |
commit | 2f0649f6fe411d7e07c8d56cf8ea56db53536da8 (patch) | |
tree | 778611fb52176dce1ad06c68e87b2cb348ca0f7b /usr/include/assert.h | |
parent | Initial commit. (diff) | |
download | klibc-upstream/2.0.13.tar.xz klibc-upstream/2.0.13.zip |
Adding upstream version 2.0.13.upstream/2.0.13upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'usr/include/assert.h')
-rw-r--r-- | usr/include/assert.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/usr/include/assert.h b/usr/include/assert.h new file mode 100644 index 0000000..9091733 --- /dev/null +++ b/usr/include/assert.h @@ -0,0 +1,28 @@ +/* + * assert.h + */ + +#ifndef _ASSERT_H +#define _ASSERT_H + +#include <klibc/compiler.h> + +#ifdef NDEBUG + +/* + * NDEBUG doesn't just suppress the faulting behavior of assert(), + * but also all side effects of the assert() argument. This behavior + * is required by the C standard, and allows the argument to reference + * variables that are not defined without NDEBUG. + */ +#define assert(x) ((void)(0)) + +#else + +extern __noreturn __assert_fail(const char *, const char *, unsigned int); + +#define assert(x) ((x) ? (void)0 : __assert_fail(#x, __FILE__, __LINE__)) + +#endif + +#endif /* _ASSERT_H */ |