From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753130AbcD0LmL (ORCPT ); Wed, 27 Apr 2016 07:42:11 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:43670 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751103AbcD0LmJ (ORCPT ); Wed, 27 Apr 2016 07:42:09 -0400 From: Vaishali Thakkar To: Julia.Lawall@lip6.fr Cc: Gilles.Muller@lip6.fr, nicolas.palix@imag.fr, mmarek@suse.com, cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org, Vaishali Thakkar Subject: [PATCH] Coccinelle: noderef: Add a rule and correct the old rule Date: Wed, 27 Apr 2016 17:11:29 +0530 Message-Id: <1461757289-21035-1-git-send-email-vaishali.thakkar@oracle.com> X-Mailer: git-send-email 2.1.4 X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a new rule to detect the cases where sizeof is used as a subexpression rather than a top level argument. Also, for the patch mode third rule should behave same as second rule with arguments reversed. So, change that as well. Signed-off-by: Vaishali Thakkar --- scripts/coccinelle/misc/noderef.cocci | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/coccinelle/misc/noderef.cocci b/scripts/coccinelle/misc/noderef.cocci index 80a831c..9991ee9 100644 --- a/scripts/coccinelle/misc/noderef.cocci +++ b/scripts/coccinelle/misc/noderef.cocci @@ -16,6 +16,7 @@ virtual patch @depends on patch@ expression *x; expression f; +identifier i; type T; @@ @@ -30,7 +31,12 @@ f(...,(T)(x),...,sizeof( + *x ),...) | -f(...,sizeof(x),...,(T)( +f(...,sizeof( +- x ++ *x + ),...,(T)(x),...) +| +x = f(...,i*sizeof( - x + *x ),...) @@ -39,6 +45,7 @@ f(...,sizeof(x),...,(T)( @r depends on !patch@ expression *x; expression f; +identifier i; position p; type T; @@ @@ -49,6 +56,8 @@ type T; *f(...,(T)(x),...,sizeof@p(x),...) | *f(...,sizeof@p(x),...,(T)(x),...) +| +*x = f(...,i*sizeof@p(x),...) ) @script:python depends on org@ -- 2.1.4