diff options
Diffstat (limited to 'vendor/libc-shim/include/assert.h')
| -rw-r--r-- | vendor/libc-shim/include/assert.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/libc-shim/include/assert.h b/vendor/libc-shim/include/assert.h new file mode 100644 index 000000000..4e8cd85a4 --- /dev/null +++ b/vendor/libc-shim/include/assert.h @@ -0,0 +1,28 @@ +#ifdef __cplusplus +extern "C" { +#endif + +#pragma once + +#ifdef NDEBUG +#define assert(e) ((void)0) +#else + +#ifdef __FILE_NAME__ +#define __ASSERT_FILE_NAME __FILE_NAME__ +#else /* __FILE_NAME__ */ +#define __ASSERT_FILE_NAME __FILE__ +#endif /* __FILE_NAME__ */ + +void __odin_libc_assert_fail(const char *, const char *, int, const char *); + +#define assert(e) \ + (__builtin_expect(!(e), 0) ? __odin_libc_assert_fail(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0) + +#endif /* NDEBUG */ + +#define static_assert _Static_assert + +#ifdef __cplusplus +} +#endif |