[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7ef650e0a6487a3eefc8df9eaf0ab20b5d26bad1.camel@perches.com>
Date: Sun, 20 Oct 2019 13:16:19 -0700
From: Joe Perches <joe@...ches.com>
To: Julia Lawall <julia.lawall@...6.fr>
Cc: Dan Carpenter <dan.carpenter@...cle.com>,
Jules Irenge <jbi.octave@...il.com>,
devel@...verdev.osuosl.org, outreachy-kernel@...glegroups.com,
linux-kernel@...r.kernel.org, gregkh@...uxfoundation.org
Subject: Re: [Outreachy kernel] Re: [PATCH v1 1/5] staging: wfx: fix
warnings of no space is necessary
On Sun, 2019-10-20 at 21:52 +0200, Julia Lawall wrote:
> On Sun, 20 Oct 2019, Joe Perches wrote:
[]
> > There's probably a generic cocci mechanism to check function
> > prototypes and then remove uses of unnecessary void pointer casts
> > in function calls. I'm not going to try to figure out that syntax.
>
> With the --recursive-includes option, perhaps:
>
> @r@
> identifier f;
> parameter list[n] ps;
> type T;
> identifier i;
> @@
>
> T f(ps, void *i, ...);
>
> @@
> expression e;
> identifier r.f;
> expression list[r.n] es;
> @@
>
> f(es,
> - (void *)(e)
> + e
> ,...)
>
> This of course only works for functions that have prototypes, and not for
> macros. It will also run slowly.
You are not kidding about slow, but it doesn't seem to work
for mem<foo>, maybe because system includes aren't analyzed.
Single file processing time on an XPS13 averages more than
100 seconds per file.
Also:
expression e;
could probably be better as:
type T;
T *p;
as some of the expressions cast to void are int or size_t
and it's probably better to restrict the conversions to
just pointer or array types.
Powered by blists - more mailing lists