blob: 39fccbf9eda4cb692863f003cf0b630dd969d42d [file] [log] [blame]
// Copyright Microsoft and CHERIoT Contributors.
// SPDX-License-Identifier: MIT
#ifndef _ASSERT_H_
#define _ASSERT_H_
#ifdef NDEBUG
# define assert(x) ((void)0)
#else
// XXX extract needed bits from <stdlib.h>
#include <cdefs.h>
static inline void __dead2 panic()
{
// Invalid instruction is guaranteed to trap.
while (1)
{
__asm volatile("unimp");
}
}
# define assert(x) ((x) ? (void)0 : panic())
#endif
#ifndef static_assert
#define static_assert _Static_assert
#endif
#endif // _ASSERT_H_