Idris2/support/c/idris_util.h

22 lines
814 B
C
Raw Normal View History

#pragma once
#include <stdnoreturn.h>
// Utilities used by FFI code.
// Crash is the condition is false.
2022-09-21 13:13:15 +03:00
#define IDRIS2_VERIFY(cond, ...) \
do { \
if (!(cond)) { \
idris2_verify_failed(__FILE__, __LINE__, #cond, __VA_ARGS__); \
} \
} while (0)
// Used by `IDRIS2_VERIFY`, do not use directly.
2022-09-21 13:13:15 +03:00
noreturn void idris2_verify_failed(const char *file, int line, const char *cond,
const char *fmt, ...)
#if defined(__clang__) || defined(__GNUC__)
2022-09-21 13:13:15 +03:00
__attribute__((format(printf, 4, 5)))
#endif
2022-09-21 13:13:15 +03:00
;