add pa_assert_cc() for compile time assertions

This commit is contained in:
Lennart Poettering 2009-03-23 21:03:52 +01:00
parent a467bec423
commit 52dcb950ef
2 changed files with 15 additions and 1 deletions

View file

@ -193,11 +193,25 @@ typedef int pa_bool_t;
#define pa_assert_fp(expr) pa_assert_se(expr)
#endif
#ifdef NDEBUG
#define pa_assert_not_reached() pa_nop()
#else
#define pa_assert_not_reached() \
do { \
pa_log_error("Code should not be reached at %s:%u, function %s(). Aborting.", __FILE__, __LINE__, PA_PRETTY_FUNCTION); \
abort(); \
} while (FALSE)
#endif
/* A compile time assertion */
#define pa_assert_cc(expr) \
do { \
switch (0) { \
case 0: \
case !!(expr): \
; \
} \
} while (FALSE)
#define PA_PTR_TO_UINT(p) ((unsigned int) ((uintptr_t) (p)))
#define PA_UINT_TO_PTR(u) ((void*) ((uintptr_t) (u)))