From: Brian Paul Date: Wed, 4 Jan 2012 15:40:04 +0000 (-0700) Subject: gallium: add STATIC_ASSERT macro X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=188aca34923d109323e0e1a882c69f2b422b5cae;p=mesa.git gallium: add STATIC_ASSERT macro --- diff --git a/src/gallium/include/pipe/p_compiler.h b/src/gallium/include/pipe/p_compiler.h index 6ac36447638..1daa5abdb85 100644 --- a/src/gallium/include/pipe/p_compiler.h +++ b/src/gallium/include/pipe/p_compiler.h @@ -308,6 +308,17 @@ void _ReadWriteBarrier(void); #endif +/** + * Static (compile-time) assertion. + * Basically, use COND to dimension an array. If COND is false/zero the + * array size will be -1 and we'll get a compilation error. + */ +#define STATIC_ASSERT(COND) \ + do { \ + typedef int static_assertion_failed[(!!(COND))*2-1]; \ + } while (0) + + #if defined(__cplusplus) } #endif