Re: linux-next: Tree for Jun 20 (hweight return type)

From: Randy Dunlap
Date: Wed Jun 20 2012 - 21:10:47 EST


On 06/20/2012 12:35 AM, Stephen Rothwell wrote:

> Hi all,
>
> Changes since 20120619:


Someone changes the return type of __const_hweight8() to
(unsigned long). That causes printk format warnings when
hweight8/16() etc. is passed a constant:

drivers/input/joystick/analog.c:412:4: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
drivers/input/joystick/analog.c:412:4: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
drivers/input/joystick/analog.c:416:5: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'


Note that in

#define hweight8(w) (__builtin_constant_p(w) ? __const_hweight8(w) : __arch_hweight8(w))

__arch_hweight*() still returns unsigned int while __const_hweight*()
returns unsigned long. This can't be good, can it?




--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/