[Mesa-dev] [PATCH mesa] u_debug: do not compile asserts when they are disabled

Eric Engestrom eric.engestrom at imgtec.com
Thu Nov 30 12:16:06 UTC 2017


Commit f0ba7d897d1c22202531a added this code to expose asserts to the
compiler in an attempt to hide 'unused variable' warnings, incorrectly
claiming it was a no-op. This has two bad effects:
- any assert with side-effects are executed when they should be
  disabled
- the whole content of the assert must be understandable by the
  compiler, which isn't true if variable or members are correctly
  guarded by NDEBUG

Fix this by effectively reverting f0ba7d897d1c22202531a.

Unused variables warnings can be addressed by marking the variables as
MAYBE_UNUSED instead, as is done in the rest of Mesa.

Fixes: f0ba7d897d1c22202531a "util: better fix for unused variable
       warnings with asserts"
Cc: Keith Whitwell <keithw at vmware.com>
Reported-by: Gert Wollny <gw.fossdev at gmail.com>
Signed-off-by: Eric Engestrom <eric.engestrom at imgtec.com>
---
 src/gallium/auxiliary/util/u_debug.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/util/u_debug.h b/src/gallium/auxiliary/util/u_debug.h
index d2ea89f59c10e1bc0944..88e9bb8a29d63826167e 100644
--- a/src/gallium/auxiliary/util/u_debug.h
+++ b/src/gallium/auxiliary/util/u_debug.h
@@ -188,7 +188,7 @@ void _debug_assert_fail(const char *expr,
 #ifndef NDEBUG
 #define debug_assert(expr) ((expr) ? (void)0 : _debug_assert_fail(#expr, __FILE__, __LINE__, __FUNCTION__))
 #else
-#define debug_assert(expr) (void)(0 && (expr))
+#define debug_assert(expr) ((void)0)
 #endif
 
 
-- 
Cheers,
  Eric



More information about the mesa-dev mailing list