fs/hfsplus/xattr.c: comparison of distinct pointer types lacks a cast
Geert Uytterhoeven
geert at linux-m68k.org
Sun May 25 18:48:52 EST 2014
Hi Christian,
On Sun, May 25, 2014 at 3:42 AM, Christian Kujau <lists at nerdbynature.de> wrote:
> /usr/local/src/linux-git/include/asm-generic/div64.h:43:28: warning:
> comparison of distinct pointer types lacks a cast [enabled by default]
> (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
> ^
> /usr/local/src/linux-git/fs/hfsplus/xattr.c:86:2: note: in expansion of
> macro 'do_div'
> do_div(tmp, node_size);
> ^
> LD [M] fs/hfsplus/hfsplus.o
>
> ---------------------------------------------------------------
>
> I don't fully understand the issue here, but xattr.c:86 reads:
>
> do_div(tmp, node_size);
"tmp" is "loff_t" which is "__kernel_loff_t", which is "long long", i.e. signed,
while include/asm-generic/div64.h compares its type with "uint64_t".
As inode sizes are positive, it should be safe to change the type of "tmp"
to "u64". Does that make the warning go away?
> Now, "git log -S do_div --source fs/hfsplus/xattr.c" brought up the
> following commit from Geert, introducing do_div() to xattr.c
>
> commit a99b7069aab8fc3fb4f26d15795dc280b52e38b1 HEAD
> Author: Geert Uytterhoeven <geert at linux-m68k.org>
> Date: Thu Nov 14 14:32:18 2013 -0800
> hfsplus: Fix undefined __divdi3 in hfsplus_init_header_node()
>
> Reverting this commit makes the warning above go away, but I doubt this
> would be the correct solution here :-)
Indeed ;-)
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the Linuxppc-dev
mailing list