Re: [vserver] Kernel compile warnings

From: Ghislain Adnet <gadnet_at_aqueos.com>
Date: Tue 26 Dec 2017 - 14:08:53 GMT
Message-ID: <e1f55c8f-1076-eee4-36f7-d1b731bd7bba@aqueos.com>

Le 21/12/2017 à 21:36, Tor Rune Skoglund a écrit :
> Hi List,
>
> When compiling a 4.1.43 kernel with the latest patch (patch-4.1.42-vs2.3.8.6.diff) with gcc6.4.0 it show some code
> warnings. (See below. ) It probably does not matter (I don't know), but I thought I at least should mentioned it in case
> someone or Herbert care.
>
> BR,
> Tor Rune Skoglund
>
>   CC      kernel/vserver/proc.o
> kernel/vserver/proc.c: In function 'proc_xid_iterate':
> kernel/vserver/proc.c:620:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
>                                            ^
> kernel/vserver/proc.c:626:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
>                                             ^
> kernel/vserver/proc.c: In function 'proc_nid_iterate':
> kernel/vserver/proc.c:701:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
>                                            ^
> kernel/vserver/proc.c:707:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
>                                             ^
> kernel/vserver/proc.c: In function 'proc_virtual_iterate':
> kernel/vserver/proc.c:854:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
>                                            ^
> kernel/vserver/proc.c:860:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
>                                             ^
> kernel/vserver/proc.c: In function 'proc_virtnet_iterate':
> kernel/vserver/proc.c:935:43: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, ".", 1, ino, DT_DIR) < 0)
>                                            ^
> kernel/vserver/proc.c:941:44: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare]
>    if (!dir_emit(ctx, "..", 2, ino, DT_DIR) < 0)
>                                             ^
>   LD      kernel/vserver/vserver.o
>
>

from what i see:

static inline bool dir_emit(struct dir_context *ctx,
                            const char *name, int namelen,
                            u64 ino, unsigned type)

dir_emit return ture/false so it cannot be < 0 it can be true or false :)

so should it be

if (dir_emit(ctx, "..", 2, ino, DT_DIR) )
or
if (!dir_emit(ctx, "..", 2, ino, DT_DIR) )

?

Ghis.
Received on Tue Dec 26 14:07:08 2017

[Next/Previous Months] [Main vserver Project Homepage] [Howto Subscribe/Unsubscribe] [Paul Sladen's vserver stuff]
Generated on Tue 26 Dec 2017 - 14:07:08 GMT by hypermail 2.1.8