diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-03-23 21:03:52 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-03-23 21:03:52 +0100 |
commit | 52dcb950efead46a398da977bc28e560f8564b62 (patch) | |
tree | b83ab69c75bb7e6323b66722ce4db662f6dae255 /src/pulsecore/macro.h | |
parent | a467bec42352c8e86cbc4c680a19a376405946ba (diff) |
add pa_assert_cc() for compile time assertions
Diffstat (limited to 'src/pulsecore/macro.h')
-rw-r--r-- | src/pulsecore/macro.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/pulsecore/macro.h b/src/pulsecore/macro.h index 309f1a0d..a5ca6964 100644 --- a/src/pulsecore/macro.h +++ b/src/pulsecore/macro.h @@ -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))) |