mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-28 17:04:34 +00:00
29 lines
553 B
C
29 lines
553 B
C
#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
|