blob: c94abd220f95c142617d40de98b2b1c70505899d [file]
// 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