| // Copyright 2026 The IREE Authors |
| // |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| // <assert.h> for wasm32. |
| |
| // assert.h is intentionally re-includable (NDEBUG can change between |
| // includes), so no include guard. |
| |
| #include <stddef.h> |
| |
| #undef assert |
| #undef static_assert |
| |
| #ifdef NDEBUG |
| #define assert(expression) ((void)0) |
| #else |
| // iree_wasm_assert_fail is provided by the libc implementation and calls |
| // through to the JS host for reporting. |
| extern _Noreturn void iree_wasm_assert_fail(const char* expression, |
| const char* file, int line, |
| const char* function); |
| #define assert(expression) \ |
| ((expression) \ |
| ? ((void)0) \ |
| : iree_wasm_assert_fail(#expression, __FILE__, __LINE__, __func__)) |
| #endif |
| |
| // C11 static_assert. |
| #define static_assert _Static_assert |