diff --git a/shared/c-stdaux/src/c-stdaux.h b/shared/c-stdaux/src/c-stdaux.h index 08d155cebc..1cdbbbcfcf 100644 --- a/shared/c-stdaux/src/c-stdaux.h +++ b/shared/c-stdaux/src/c-stdaux.h @@ -84,7 +84,10 @@ extern "C" { * * Return: Evaluates to @_expr. */ -#define C_EXPR_ASSERT(_expr, _assertion, _message) \ +#if defined(__COVERITY__) // Coverity cannot const-fold __builtin_choose_expr() +# define C_EXPR_ASSERT(_expr, _assertion, _message) (_expr) +#else +# define C_EXPR_ASSERT(_expr, _assertion, _message) \ /* indentation and line-split to get better diagnostics */ \ (__builtin_choose_expr( \ !!(1 + 0 * sizeof( \ @@ -95,6 +98,7 @@ _Static_assert(_assertion, _message); \ (_expr), \ ((void)0) \ )) +#endif /** * C_STRINGIFY() - stringify a token, but evaluate it first