Re: [PATCH] libbpf: Remove unnecessary conversion to bool

From: Andrii Nakryiko
Date: Fri Nov 06 2020 - 17:19:48 EST


On Fri, Nov 6, 2020 at 1:50 PM Joe Perches <joe@xxxxxxxxxxx> wrote:
>
> On Fri, 2020-11-06 at 13:32 -0800, Andrii Nakryiko wrote:
> > On Thu, Nov 5, 2020 at 11:12 PM <xiakaixu1987@xxxxxxxxx> wrote:
> > > Fix following warning from coccinelle:
> > > ./tools/lib/bpf/libbpf.c:1478:43-48: WARNING: conversion to bool not needed here
> []
> > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> []
> > > @@ -1475,7 +1475,7 @@ static int set_kcfg_value_tri(struct extern_desc *ext, void *ext_val,
> > > ext->name, value);
> > > return -EINVAL;
> > > }
> > > - *(bool *)ext_val = value == 'y' ? true : false;
> > > + *(bool *)ext_val = value == 'y';
> >
> > I actually did this intentionally. x = y == z; pattern looked too
> > obscure to my taste, tbh.
>
> It's certainly a question of taste and obviously there is nothing
> wrong with yours.
>
> Maybe adding parentheses makes the below look less obscure to you?
>
> x = (y == z);

Yeah, I think this would be explicit enough. But let's keep the *(bool
*) cast and keep switch code shorter and without extra {} block.

>
> My taste would run to something like:
> ---
> tools/lib/bpf/libbpf.c | 25 +++++++++++++++++--------
> 1 file changed, 17 insertions(+), 8 deletions(-)
>

[...]