From 7157c3a4df70965c5652f957ebdbbe116260d480 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 1 Jan 2013 16:10:27 +0100 Subject: [PATCH] utils: add BUILD_BUG_ON (similar to the one in the linux kernel) Signed-off-by: Felix Fietkau --- utils.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/utils.h b/utils.h index d1a6cd3..a86894a 100644 --- a/utils.h +++ b/utils.h @@ -38,4 +38,18 @@ void *__calloc_a(size_t len, ...); #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) #endif +#define __BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) + +#ifdef __OPTIMIZE__ +extern int __BUILD_BUG_ON_CONDITION_FAILED; +#define BUILD_BUG_ON(condition) \ + do { \ + __BUILD_BUG_ON(condition); \ + if (condition) \ + __BUILD_BUG_ON_CONDITION_FAILED = 1; \ + } while(0) +#else +#define BUILD_BUG_ON __BUILD_BUG_ON +#endif + #endif -- 2.25.1