summary refs log tree commit diff
path: root/shared/c-stdaux
diff options
context:
space:
mode:
Diffstat (limited to 'shared/c-stdaux')
-rw-r--r--shared/c-stdaux/src/c-stdaux.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/shared/c-stdaux/src/c-stdaux.h b/shared/c-stdaux/src/c-stdaux.h
index 08d155ce..1cdbbbcf 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