mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-09 12:28:19 -04:00
Fix compilation on Windows with NDEBUG
Dongsheng Song reports that when building on windows with NDEBUG, you run into an attempt to do EVUTIL_ASSERT(x) where x is a bitfield, which turns into _EVUTIL_NIL_CONDITION(x), which takes sizeof(x), which is illegal. This patch fixes _EVUTIL_NIL_CONDITION to work on bitfields too.
This commit is contained in:
parent
05f0195dd9
commit
cb8059d2d3
@ -52,9 +52,13 @@ extern "C" {
|
||||
|
||||
/* A good no-op to use in macro definitions. */
|
||||
#define _EVUTIL_NIL_STMT ((void)0)
|
||||
/* Suppresses the compiler's "unused variable" warnings for unused assert. */
|
||||
/* A no-op that tricks the compiler into thinking a condition is used while
|
||||
* definitely not making any code for it. Used to compile out asserts while
|
||||
* avoiding "unused variable" warnings. The "!" forces the compiler to
|
||||
* do the sizeof() on an int, in case "condition" is a bitfield value.
|
||||
*/
|
||||
#define _EVUTIL_NIL_CONDITION(condition) do { \
|
||||
(void)sizeof(condition); \
|
||||
(void)sizeof(!(condition)); \
|
||||
} while(0)
|
||||
|
||||
/* Internal use only: macros to match patterns of error codes in a
|
||||
|
Loading…
x
Reference in New Issue
Block a user