aboutsummaryrefslogtreecommitdiff
path: root/vendor/libc-shim/include/assert.h
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/libc-shim/include/assert.h')
-rw-r--r--vendor/libc-shim/include/assert.h28
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