|
@@ -314,29 +314,14 @@ static inline void *offset_to_ptr(const int *off)
|
|
|
#endif
|
|
|
#ifndef __compiletime_error
|
|
|
# define __compiletime_error(message)
|
|
|
-/*
|
|
|
- * Sparse complains of variable sized arrays due to the temporary variable in
|
|
|
- * __compiletime_assert. Unfortunately we can't just expand it out to make
|
|
|
- * sparse see a constant array size without breaking compiletime_assert on old
|
|
|
- * versions of GCC (e.g. 4.2.4), so hide the array from sparse altogether.
|
|
|
- */
|
|
|
-# ifndef __CHECKER__
|
|
|
-# define __compiletime_error_fallback(condition) \
|
|
|
- do { ((void)sizeof(char[1 - 2 * condition])); } while (0)
|
|
|
-# endif
|
|
|
-#endif
|
|
|
-#ifndef __compiletime_error_fallback
|
|
|
-# define __compiletime_error_fallback(condition) do { } while (0)
|
|
|
#endif
|
|
|
|
|
|
#ifdef __OPTIMIZE__
|
|
|
# define __compiletime_assert(condition, msg, prefix, suffix) \
|
|
|
do { \
|
|
|
- int __cond = !(condition); \
|
|
|
extern void prefix ## suffix(void) __compiletime_error(msg); \
|
|
|
- if (__cond) \
|
|
|
+ if (!(condition)) \
|
|
|
prefix ## suffix(); \
|
|
|
- __compiletime_error_fallback(__cond); \
|
|
|
} while (0)
|
|
|
#else
|
|
|
# define __compiletime_assert(condition, msg, prefix, suffix) do { } while (0)
|