[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210418215931.kbgme42kgnpqbwn4@mail>
Date: Sun, 18 Apr 2021 23:59:31 +0200
From: Luc Van Oostenryck <luc.vanoostenryck@...il.com>
To: David Laight <David.Laight@...lab.com>
Cc: 'Mauro Carvalho Chehab' <mchehab@...nel.org>,
Ashish Kalra <eashishkalra@...il.com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"linux-media@...r.kernel.org" <linux-media@...r.kernel.org>,
"devel@...verdev.osuosl.org" <devel@...verdev.osuosl.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] media: atomisp: silence "dubious: !x | !y" warning
On Sat, Apr 17, 2021 at 09:31:32PM +0000, David Laight wrote:
> > > Upon running sparse, "warning: dubious: !x | !y" is brought to notice
> > > for this file. Logical and bitwise OR are basically the same in this
> > > context so it doesn't cause a runtime bug. But let's change it to
> > > logical OR to make it cleaner and silence the Sparse warning.
>
> The old code is very likely to by slightly more efficient.
>
> It may not matter here, but it might in a really hot path.
>
> Since !x | !y and !x || !y always have the same value
> why is sparse complaining at all.
They both will have the same value here and any half-decent
compiler know that and thus generate the same code, so no
worries about efficiency.
Sparse complains because the programmer's intention is not clear.
Was a boolean context or a bitwise context that was meant?
Maybe '||' was meant and the RHS had to be short cut?
Maybe what was meant was '~x | ~y'?
-- Luc
Powered by blists - more mailing lists