mesa: add STATIC_ASSERT() macro for compile-time assertions
This can be used to check that tables have the right number of entries, etc. at compile-time. This will hopefully catch things that are missed if particular drivers aren't tested, for example. v2: Simplify the macro to omit the extra line number info (the compiler already indicates the line number). And wrap the macro for readability.
This commit is contained in:
@@ -310,6 +310,18 @@ static INLINE GLuint CPU_TO_LE32(GLuint x)
|
||||
#endif
|
||||
#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 (__GNUC__ >= 3)
|
||||
#define PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a)))
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user