On Mon, 29 Nov 2010, Mathieu Desnoyers wrote:
We also have a __same_type() macro in linux/compiler.h... But if I use
that the kernel build fails. I guess the check is too strict.
---
arch/x86/include/asm/percpu.h | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
Index: linux-2.6/arch/x86/include/asm/percpu.h
===================================================================
--- linux-2.6.orig/arch/x86/include/asm/percpu.h 2010-11-29 12:46:50.000000000 -0600
+++ linux-2.6/arch/x86/include/asm/percpu.h 2010-11-29 12:52:25.000000000 -0600
@@ -127,11 +127,7 @@ do { \
typedef typeof(var) pao_T__; \
const int pao_ID__ = (__builtin_constant_p(val) && \
((val) == 1 || (val) == -1)) ? (val) : 0; \
- if (0) { \
- pao_T__ pao_tmp__; \
- pao_tmp__ = (val); \
- (void)pao_tmp__; \
- } \
+ BUILD_BUG_ON(!__same_type(var, val)); \
switch (sizeof(var)) { \
case 1: \
if (pao_ID__ == 1) \
--