From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753469AbbJWTgE (ORCPT ); Fri, 23 Oct 2015 15:36:04 -0400 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:63577 "EHLO mail3-relais-sop.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753409AbbJWTgB (ORCPT ); Fri, 23 Oct 2015 15:36:01 -0400 X-IronPort-AV: E=Sophos;i="5.20,188,1444687200"; d="scan'208";a="151589829" Date: Fri, 23 Oct 2015 21:35:57 +0200 (CEST) From: Julia Lawall X-X-Sender: jll@localhost6.localdomain6 To: Daniel Granat cc: Julia.Lawall@lip6.fr, cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org, Gilles.Muller@lip6.fr, nicolas.palix@imag.fr, mmarek@suse.com, sfr@canb.auug.org.au Subject: Re: [PATCH v6] coccinelle: Improve checking for missing NULL terminators In-Reply-To: <1445614266-14609-1-git-send-email-d.granat@samsung.com> Message-ID: References: <1425043313-15844-1-git-send-email-d.granat@samsung.com> <1445614266-14609-1-git-send-email-d.granat@samsung.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Acked-by: Julia Lawall On Fri, 23 Oct 2015, Daniel Granat wrote: > * Extend checking on tables containing structures which are > initialized without specifying member name. Added new tables > for checking: i2c_device_id and platform_device_id. > > Signed-off-by: Daniel Granat > --- > scripts/coccinelle/misc/of_table.cocci | 33 ++++++++++++++++++++++++++++----- > 1 file changed, 28 insertions(+), 5 deletions(-) > > diff --git a/scripts/coccinelle/misc/of_table.cocci b/scripts/coccinelle/misc/of_table.cocci > index 3c93404..2294915 100644 > --- a/scripts/coccinelle/misc/of_table.cocci > +++ b/scripts/coccinelle/misc/of_table.cocci > @@ -1,6 +1,6 @@ > -/// Make sure of_device_id tables are NULL terminated > +/// Make sure (of/i2c/platform)_device_id tables are NULL terminated > // > -// Keywords: of_table > +// Keywords: of_table i2c_table platform_table > // Confidence: Medium > // Options: --include-headers > > @@ -13,18 +13,26 @@ virtual report > identifier var, arr; > expression E; > @@ > -struct of_device_id arr[] = { > +( > +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { > ..., > { > .var = E, > * } > }; > +| > +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { > + ..., > +* { ..., E, ... }, > +}; > +) > > @depends on patch@ > identifier var, arr; > expression E; > @@ > -struct of_device_id arr[] = { > +( > +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { > ..., > { > .var = E, > @@ -32,19 +40,34 @@ struct of_device_id arr[] = { > + }, > + { } > }; > +| > +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { > + ..., > + { ..., E, ... }, > ++ { }, > +}; > +) > > @r depends on org || report@ > position p1; > identifier var, arr; > expression E; > @@ > -struct of_device_id arr[] = { > +( > +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { > ..., > { > .var = E, > } > @p1 > }; > +| > +struct \(of_device_id \| i2c_device_id \| platform_device_id\) arr[] = { > + ..., > + { ..., E, ... } > + @p1 > +}; > +) > > @script:python depends on org@ > p1 << r.p1; > -- > 1.9.1 > >