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.