From 188aca34923d109323e0e1a882c69f2b422b5cae Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 4 Jan 2012 08:40:04 -0700 Subject: [PATCH] gallium: add STATIC_ASSERT macro --- src/gallium/include/pipe/p_compiler.h | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 -- 2.30.2