[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.22.394.2008220905460.3150@hadrien>
Date: Sat, 22 Aug 2020 09:07:34 +0200 (CEST)
From: Julia Lawall <julia.lawall@...ia.fr>
To: Joe Perches <joe@...ches.com>
cc: Valdis Klētnieks <valdis.kletnieks@...edu>,
kernel-janitors <kernel-janitors@...r.kernel.org>,
kernelnewbies <kernelnewbies@...nelnewbies.org>,
linux-kernel-mentees@...ts.linuxfoundation.org,
Andrew Morton <akpm@...ux-foundation.org>,
cocci <cocci@...teme.lip6.fr>,
Giuseppe Scrivano <gscrivan@...hat.com>,
LKML <linux-kernel@...r.kernel.org>,
Andy Whitcroft <apw@...dowen.org>
Subject: Re: [Cocci] coccinelle: Convert comma to semicolons (was Re: [PATCH]
checkpatch: Add test for comma use that should be semicolon)
On Fri, 21 Aug 2020, Joe Perches wrote:
> On Fri, 2020-08-21 at 23:35 -0400, Valdis Klētnieks wrote:
> > On Fri, 21 Aug 2020 18:08:08 -0700, Joe Perches said:
> > > (forwarding on to kernel-janitors/mentees and kernelnewbies)
> > >
> > > Just fyi for anyone that cares:
> > >
> > > A janitorial task for someone might be to use Julia's coccinelle
> > > script below to convert the existing instances of commas that
> > > separate statements into semicolons.
> >
> > Note that you need to *really* check for possible changes in semantics.
> > It's *usually* OK to do that, but sometimes it's not...
> >
> > for (i=0; i++, last++; !last) {
> >
> > changing that comma to a ; will break the compile. In other cases, it can
> > introduce subtle bugs.
>
> True enough for a general statement, though the coccinelle
> script Julia provided does not change a single instance of
> for loop expressions with commas.
>
> As far as I can tell, no logic defect is introduced by the
> script at all.
The script has a rule to ensure that what is changed is part of a top
level statement that has the form e1, e2;. I put that in to avoid
transforming cases where the comma is the body of a macro, but it protects
against for loop headers as well.
julia
Powered by blists - more mailing lists