From: Paul Berry Date: Tue, 2 Apr 2013 16:51:47 +0000 (-0700) Subject: Avoid spurious GCC warnings in STATIC_ASSERT() macro. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5db22494934779a3e7fb7669379d1693ff19d39f;p=mesa.git Avoid spurious GCC warnings in STATIC_ASSERT() macro. GCC 4.8 now warns about typedefs that are local to a scope and not used anywhere within that scope. This produced spurious warnings with the STATIC_ASSERT() macro (which used a typedef to provoke a compile error in the event of an assertion failure). This patch switches to a simpler technique that avoids the warning. v2: Avoid GCC-specific syntax. Also update p_compiler.h. Reviewed-by: Kenneth Graunke --- diff --git a/src/gallium/include/pipe/p_compiler.h b/src/gallium/include/pipe/p_compiler.h index a131969c6eb..78ec83c8489 100644 --- a/src/gallium/include/pipe/p_compiler.h +++ b/src/gallium/include/pipe/p_compiler.h @@ -255,7 +255,7 @@ void _ReadWriteBarrier(void); */ #define STATIC_ASSERT(COND) \ do { \ - typedef int static_assertion_failed[(!!(COND))*2-1]; \ + (void) sizeof(char [1 - 2*!(COND)]); \ } while (0) diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h index 8b23665e689..8431534c313 100644 --- a/src/mesa/main/compiler.h +++ b/src/mesa/main/compiler.h @@ -256,7 +256,7 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) */ #define STATIC_ASSERT(COND) \ do { \ - typedef int static_assertion_failed[(!!(COND))*2-1]; \ + (void) sizeof(char [1 - 2*!(COND)]); \ } while (0)