/* libmisc/assert.c - More assertions * * Copyright (C) 2024-2025 Luke T. Shumaker * SPDX-License-Identifier: AGPL-3.0-or-later */ #define LOG_NAME ASSERT #include /* for log_errorln() */ #include #ifndef NDEBUG void __assert_msg_fail(const char *expr, const char *file, unsigned int line, const char *func, const char *msg) { static bool in_fail = false; if (!in_fail) { in_fail = true; log_errorln(file, ":", line, ":", func, "(): ", "assertion ", (qstr, expr), " failed", msg ? ": " : "", msg ?: ""); in_fail = false; } __lm_abort(); } #endif