/* SPDX-License-Identifier: LGPL-2.1 OR MIT */ /* * Assert for NOLIBC * Copyright (C) 2026 Thomas Weißschuh */ /* make sure to include all global symbols */ #include "nolibc.h" #ifndef _NOLIBC_ASSERT_H #define _NOLIBC_ASSERT_H #include "errno.h" #include "stdio.h" #include "stdlib.h" #endif /* _NOLIBC_ASSERT_H */ /* NDEBUG needs to be evaluated on *each* inclusion */ #ifdef assert #undef assert #endif #ifndef NDEBUG #define assert(expr) \ ({ \ if (!(expr)) { \ fprintf(stderr, "%s: %s:%d: %s: Assertion `%s' failed.\n", \ program_invocation_short_name, __FILE__, __LINE__, __func__, \ #expr); \ abort(); \ } \ }) #else #define assert(expr) ((void)0) #endif