40 #define QF_CRIT_ENTRY() ((void)0)
44 #define QF_CRIT_EXIT() ((void)0)
47#define Q_DEFINE_THIS_MODULE(name_) \
48 static char const Q_this_module_[] = name_;
50#define Q_ASSERT_INCRIT(id_, expr_) \
51 ((expr_) ? ((void)0) : Q_onError(&Q_this_module_[0], (id_)))
53#define Q_ERROR_INCRIT(id_) \
54 (Q_onError(&Q_this_module_[0], (id_)))
56#define Q_ASSERT_ID(id_, expr_) do { \
59 (expr_) ? ((void)0) : Q_onError(&Q_this_module_[0], (id_)); \
63#define Q_ERROR_ID(id_) do { \
66 Q_onError(&Q_this_module_[0], (id_)); \
73#define Q_DEFINE_THIS_MODULE(name_)
74#define Q_ASSERT_INCRIT(id_, expr_) ((void)0)
75#define Q_ERROR_INCRIT(id_) ((void)0)
76#define Q_ASSERT_ID(id_, expr_) ((void)0)
77#define Q_ERROR_ID(id_) ((void)0)
82#define Q_DEFINE_THIS_FILE Q_DEFINE_THIS_MODULE(__FILE__)
83#define Q_ASSERT(expr_) Q_ASSERT_ID(__LINE__, (expr_))
84#define Q_ERROR() Q_ERROR_ID(__LINE__)
85#define Q_REQUIRE_ID(id_, expr_) Q_ASSERT_ID((id_), (expr_))
86#define Q_REQUIRE(expr_) Q_ASSERT(expr_)
87#define Q_REQUIRE_INCRIT(id_, expr_) Q_ASSERT_INCRIT((id_), (expr_))
88#define Q_ENSURE_ID(id_, expr_) Q_ASSERT_ID((id_), (expr_))
89#define Q_ENSURE(expr_) Q_ASSERT(expr_)
90#define Q_ENSURE_INCRIT(id_, expr_) Q_ASSERT_INCRIT((id_), (expr_))
91#define Q_INVARIANT_ID(id_, expr_) Q_ASSERT_ID((id_), (expr_))
92#define Q_INVARIANT(expr_) Q_ASSERT(expr_)
93#define Q_INVARIANT_INCRIT(id_, expr_) Q_ASSERT_INCRIT((id_), (expr_))
95#ifndef Q_ASSERT_STATIC
96 #define Q_ASSERT_STATIC(expr_) extern char Q_static_assert_[(expr_) ? 1 : -1]
100 #define Q_NORETURN _Noreturn void
105 #define Q_DIM(array_) (sizeof(array_) / sizeof((array_)[0U]))
118 char const *
const module,
int int_t
Alias for assertion-ID numbers in QP assertions and return from QF_run()
#define Q_NORETURN
No-return specifier for the Q_onError() callback function.
Q_NORETURN Q_onError(char const *const module, int_t const id)