From: SF Markus Elfring <elfring@users.sourceforge.net>
To: Elena Reshetova <elena.reshetova@intel.com>,
Julia Lawall <julia.lawall@lip6.fr>,
Kees Cook <keescook@chromium.org>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
kernel-janitors@vger.kernel.org
Cc: LKML <linux-kernel@vger.kernel.org>, Coccinelle <cocci@systeme.lip6.fr>
Subject: [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules
Date: Tue, 3 Jul 2018 09:42:49 +0200 [thread overview]
Message-ID: <fcd2762c-66bb-3571-e2b7-da20eda5d8ea@users.sourceforge.net> (raw)
In-Reply-To: <6043bdc9-529f-e93f-e509-e2dedd290a10@users.sourceforge.net>
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 2 Jul 2018 18:45:15 +0200
Three function names were specified for a search of function calls
by the means of a disjunction in two rules of a script for
the semantic patch language.
Use a regular expression as a constraint for this source code search
pattern instead so that duplication of SmPL code can be avoided.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
.../coccinelle/api/atomic_as_refcounter.cocci | 21 +++++--------------
1 file changed, 5 insertions(+), 16 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 57af2db9463e..372ae99591fd 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -80,17 +80,11 @@ coccilib.report.print_report(p1[0], msg % (p2[0].line))
@r2 exists@
expression a;
-identifier x;
+identifier F =~ "^atomic(?:64|_long)?_add_unless$", x;
position p1;
@@
-(
-atomic_add_unless(&(a)->x,-1,1)@p1
-|
-atomic_long_add_unless(&(a)->x,-1,1)@p1
-|
-atomic64_add_unless(&(a)->x,-1,1)@p1
-)
+ F(&(a)->x, -1, 1)@p1
@script:python depends on report@
p1 << r2.p1;
@@ -99,17 +93,12 @@ msg = "atomic_add_unless"
coccilib.report.print_report(p1[0], msg)
@r3 exists@
-identifier x;
+expression E;
+identifier F =~ "^atomic(?:64|_long)?_add_return$";
position p1;
@@
-(
-x = atomic_add_return@p1(-1, ...);
-|
-x = atomic_long_add_return@p1(-1, ...);
-|
-x = atomic64_add_return@p1(-1, ...);
-)
+ E = F@p1(-1, ...);
@script:python depends on report@
p1 << r3.p1;
--
2.18.0
next prev parent reply other threads:[~2018-07-03 7:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-01 9:40 [PATCH] Coccinelle: add atomic_as_refcounter script Elena Reshetova
2018-06-14 23:58 ` Kees Cook
2018-06-15 5:06 ` Julia Lawall
2018-06-18 13:47 ` Masahiro Yamada
2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring
2018-07-03 7:35 ` [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constraints SF Markus Elfring
2018-07-03 7:37 ` [PATCH 2/6] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring
2018-07-03 7:40 ` [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use type “expression” for another metavariable SF Markus Elfring
2018-07-03 7:42 ` SF Markus Elfring [this message]
2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions in two SmPL rules SF Markus Elfring
2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " SF Markus Elfring
2018-08-01 12:30 ` [PATCH] Coccinelle: atomic_as_refcounter: Merge two " SF Markus Elfring
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
2018-07-16 17:24 ` [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule SF Markus Elfring
2018-07-16 17:26 ` [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constraint SF Markus Elfring
2018-07-16 17:28 ` [PATCH v2 3/8] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring
2018-07-16 17:30 ` [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use type “expression” for another metavariable SF Markus Elfring
2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring
2018-07-16 17:34 ` [PATCH v2 6/8] Coccinelle: atomic_as_refcounter: Use nested disjunctions in the first SmPL rule SF Markus Elfring
2018-07-16 17:36 ` [PATCH v2 7/8] Coccinelle: atomic_as_refcounter: Use string literals directly in two SmPL rules SF Markus Elfring
2018-07-16 17:39 ` [PATCH v2 8/8] Coccinelle: atomic_as_refcounter: Use format string directly in the first SmPL rule SF Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fcd2762c-66bb-3571-e2b7-da20eda5d8ea@users.sourceforge.net \
--to=elfring@users.sourceforge.net \
--cc=cocci@systeme.lip6.fr \
--cc=elena.reshetova@intel.com \
--cc=julia.lawall@lip6.fr \
--cc=keescook@chromium.org \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox