Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6789551pxb; Wed, 17 Feb 2021 13:34:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJxtRvQ1kxlj2ZBy0Or5tey6CEOZcYnfgJlgPbYrgBBkC5rG4pWB6s5YhOVgwhz36heXHzWF X-Received: by 2002:a05:6402:610:: with SMTP id n16mr783824edv.288.1613597648100; Wed, 17 Feb 2021 13:34:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613597648; cv=none; d=google.com; s=arc-20160816; b=JP6CjeHsFDUBCU2uM286EKzASGmGtQxTESsS3JJyzGpeOxAZ7QrMEAJBhRw4Dfqq8G 6/A2VIo5NVlZHI9IME2vsWLPLrgZo4DeIlDwf+lHQTpbfpyoNR6J2dCs2bawARJAZ9v9 +4+g3gaJ5Jun6EjlqMWE+tBBg0nVikmgTyFgfx2at0AAMKHJX54By/LTLqQjpEMgJXU8 z+SiWzk4mKeF0VkZWwzIR+H+uxat7+mvaDUGiQqcH4ykK/0ldNbBJA/TzYaKrj9YWvM9 7mVuiWPoJMJjqIBJtY7hYTsvjQfI79MRuI4N1HF4vUrE8EbcBrkxDmY/1LFXY7yd1nhz 16pQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:message-id :in-reply-to:subject:cc:to:from:date; bh=dpllrlWSfO9CD6wpYYuGxZmMP9Whsfx/CaunBLmKlIU=; b=CQMGgNOjReiDlncANzIASFoEMeYv1UoXJ36ryN+EfFZvryK8EkdVNkciBNpFHeZy6b GvrRyZEx3t09dBQ3nGSqWFfaYh1Iqo/00HCh4R+qRTXqZ5QERL3EKPzrJlRgTtV9Dcdc xN+pwnikuivViYzIEnAo5PONkYAjlqJthJW6AAQphuoFYa8sBvZUFA/ACTqK7FcaFrjQ eKSn0d6wSW1VowQT7iJf7eC3aiMyplkZnmnUIE74nTUFWesyk01zVukmIV5syLhnRilU 5KRHkVuc5jvvo4el673Zf/MJju2D7Sd/HUnw4RIycUF4h6dro+HaUplDqZnf+WcJ42sy yGJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gj16si2286022ejb.114.2021.02.17.13.33.44; Wed, 17 Feb 2021 13:34:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231879AbhBQVcM (ORCPT + 99 others); Wed, 17 Feb 2021 16:32:12 -0500 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:36576 "EHLO mail3-relais-sop.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233009AbhBQVbr (ORCPT ); Wed, 17 Feb 2021 16:31:47 -0500 X-IronPort-AV: E=Sophos;i="5.81,185,1610406000"; d="scan'208";a="373372739" Received: from 173.121.68.85.rev.sfr.net (HELO hadrien) ([85.68.121.173]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Feb 2021 22:31:06 +0100 Date: Wed, 17 Feb 2021 22:31:05 +0100 (CET) From: Julia Lawall X-X-Sender: jll@hadrien To: Denis Efremov cc: cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org Subject: Re: [PATCH] coccinelle: misc: add swap script In-Reply-To: <20210216080133.455456-1-efremov@linux.com> Message-ID: References: <20210216080133.455456-1-efremov@linux.com> User-Agent: Alpine 2.22 (DEB 394 2020-01-19) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +@depends on patch@ > +identifier tmp; > +expression a, b; > +type T; > +@@ > + > +( > +- T tmp; > +| > +- T tmp = 0; > +| > +- T *tmp = NULL; > +) > +... when != tmp > +- tmp = a; > +- a = b; > +- b = tmp; > ++ swap(a, b); > +... when != tmp In this rule and the next one, if you remove the final ; from the b = tmp line and from the swap line, and put it into context code afterwards, them the generated code looks better on cases like fs/xfs/xfs_inode.c in the function xfs_lock_two_inodes where two successive swap calls are generated. There are also some cases such as drivers/net/wireless/ath/ath5k/phy.c in the function ath5k_hw_get_median_noise_floor where the swap code makes up a whole if branch. In this cases it would be good to remove the {}. julia > + > +@depends on patch@ > +identifier tmp; > +expression a, b; > +@@ > + > +- tmp = a; > +- a = b; > +- b = tmp; > ++ swap(a, b); > + > +@script:python depends on report@ > +p << r.p; > +@@ > + > +coccilib.report.print_report(p[0], "WARNING opportunity for swap()") > + > +@script:python depends on org@ > +p << r.p; > +@@ > + > +coccilib.org.print_todo(p[0], "WARNING opportunity for swap()") > -- > 2.26.2 > >