* [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications
[not found] <CAK7LNAT=7E0HFd+MM92VcNdA1i6AME6qyFA9sN-2dabibxkiJg@mail.gmail.com>
@ 2018-07-03 7:30 ` SF Markus Elfring
2018-07-03 7:35 ` [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai SF Markus Elfring
` (6 more replies)
0 siblings, 7 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:30 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 3 Jul 2018 09:15:26 +0200
This source code search pattern was programmed in the way that
some implementation details could be improved further.
I suggest to avoid unnecessary code repetition also in this script
for the semantic patch language.
Markus Elfring (6):
Omit placeholder specifications from two SmPL constraints
Optimise a disjunction in the first SmPL rule
Use type “expression” for another metavariable
Replace disjunction by a constraint in two SmPL rules
Use nested disjunctions in two SmPL rules
Use format strings directly in SmPL rules
.../coccinelle/api/atomic_as_refcounter.cocci | 104 +++++++-----------
1 file changed, 39 insertions(+), 65 deletions(-)
--
2.18.0
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai
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 ` 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
` (5 subsequent siblings)
6 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:35 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 2 Jul 2018 16:33:46 +0200
A string was enclosed by placeholder specifications for
regular expressions as constraints for metavariables in a script
for the semantic patch language.
The desired search functionality can be achieved also without
the notation “.*”. Thus delete it.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 988120e0fd67..94373a35744e 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -12,7 +12,7 @@ virtual report
@r1 exists@
identifier a, x;
position p1, p2;
-identifier fname =~ ".*free.*";
+identifier fname =~ "free";
identifier fname2 =~ ".*destroy.*";
identifier fname3 =~ ".*del.*";
identifier fname4 =~ ".*queue_work.*";
@@ -60,8 +60,7 @@ coccilib.report.print_report(p1[0], msg % (p2[0].line))
@r4 exists@
identifier a, x, y;
position p1, p2;
-identifier fname =~ ".*free.*";
-
+identifier fname =~ "free";
@@
(
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/6] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule
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 constrai SF Markus Elfring
@ 2018-07-03 7:37 ` SF Markus Elfring
2018-07-03 7:40 ` [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio SF Markus Elfring
` (4 subsequent siblings)
6 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:37 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 2 Jul 2018 17:14:01 +0200
The names “fname2” till “fname6” do not care for different function
parameters in the disjunction at the end of a rule in a script
for the semantic patch language.
Thus reduce this disjunction by using a regular expression with
an alternation for an optimised constraint.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 94373a35744e..5571eea04c7b 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -13,12 +13,7 @@ virtual report
identifier a, x;
position p1, p2;
identifier fname =~ "free";
-identifier fname2 =~ ".*destroy.*";
-identifier fname3 =~ ".*del.*";
-identifier fname4 =~ ".*queue_work.*";
-identifier fname5 =~ ".*schedule_work.*";
-identifier fname6 =~ ".*call_rcu.*";
-
+identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@
(
@@ -39,14 +34,6 @@ identifier fname6 =~ ".*call_rcu.*";
fname@p2(a, ...);
|
fname2@p2(...);
-|
- fname3@p2(...);
-|
- fname4@p2(...);
-|
- fname5@p2(...);
-|
- fname6@p2(...);
)
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio
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 constrai 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 ` SF Markus Elfring
2018-07-03 7:42 ` [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring
` (3 subsequent siblings)
6 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:40 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 2 Jul 2018 17:55:27 +0200
The metavariable “a” is enclosed by parentheses in three rules of
a script for the semantic patch language.
Replace its type by “expression” so that the corresponding source code
search becomes more powerful.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 5571eea04c7b..57af2db9463e 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -10,7 +10,8 @@
virtual report
@r1 exists@
-identifier a, x;
+expression a;
+identifier x;
position p1, p2;
identifier fname =~ "free";
identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@ -45,7 +46,8 @@ msg = "atomic_dec_and_test variation before object free at line %s."
coccilib.report.print_report(p1[0], msg % (p2[0].line))
@r4 exists@
-identifier a, x, y;
+expression a;
+identifier x, y;
position p1, p2;
identifier fname =~ "free";
@@
@@ -77,7 +79,8 @@ msg = "atomic_dec_and_test variation before object free at line %s."
coccilib.report.print_report(p1[0], msg % (p2[0].line))
@r2 exists@
-identifier a, x;
+expression a;
+identifier x;
position p1;
@@
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules
2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring
` (2 preceding siblings ...)
2018-07-03 7:40 ` [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio SF Markus Elfring
@ 2018-07-03 7:42 ` SF Markus Elfring
2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions " SF Markus Elfring
` (2 subsequent siblings)
6 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:42 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
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
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions in two SmPL rules
2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring
` (3 preceding siblings ...)
2018-07-03 7:42 ` [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring
@ 2018-07-03 7:45 ` SF Markus Elfring
2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " 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
6 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:45 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 2 Jul 2018 19:21:28 +0200
Six 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.
Refactor them into two groups so that the SmPL code repetition
could be reduced a bit.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
.../coccinelle/api/atomic_as_refcounter.cocci | 36 +++++++++----------
1 file changed, 16 insertions(+), 20 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 372ae99591fd..63cbe866c99f 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -18,17 +18,15 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@
(
- atomic_dec_and_test@p1(&(a)->x)
+(atomic_dec_and_test@p1
+|atomic_long_dec_and_test@p1
+|atomic64_dec_and_test@p1
+|local_dec_and_test@p1
+) (&(a)->x)
|
- atomic_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_test@p1(&(a)->x)
-|
- atomic64_dec_and_test@p1(&(a)->x)
-|
- local_dec_and_test@p1(&(a)->x)
+(atomic_dec_and_lock@p1
+|atomic_long_dec_and_lock@p1
+) (&(a)->x, ...)
)
...
(
@@ -53,17 +51,15 @@ identifier fname =~ "free";
@@
(
- atomic_dec_and_test@p1(&(a)->x)
-|
- atomic_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_test@p1(&(a)->x)
-|
- atomic64_dec_and_test@p1(&(a)->x)
+(atomic_dec_and_test@p1
+|atomic_long_dec_and_test@p1
+|atomic64_dec_and_test@p1
+|local_dec_and_test@p1
+) (&(a)->x)
|
- local_dec_and_test@p1(&(a)->x)
+(atomic_dec_and_lock@p1
+|atomic_long_dec_and_lock@p1
+) (&(a)->x, ...)
)
...
y=a
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in SmPL rules
2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring
` (4 preceding siblings ...)
2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions " SF Markus Elfring
@ 2018-07-03 7:48 ` 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
6 siblings, 1 reply; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-03 7:48 UTC (permalink / raw)
To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada,
kernel-janitors
Cc: LKML, Coccinelle
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 2 Jul 2018 19:46:45 +0200
Format strings were always assigned to the Python variable “msg”
before they were used in four rules of a script for the semantic
patch language.
Delete these extra variables so that the specified string objects
are directly used for the desired data output.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
.../coccinelle/api/atomic_as_refcounter.cocci | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 63cbe866c99f..1e2278ff3261 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -40,8 +40,9 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
p1 << r1.p1;
p2 << r1.p2;
@@
-msg = "atomic_dec_and_test variation before object free at line %s."
-coccilib.report.print_report(p1[0], msg % (p2[0].line))
+coccilib.report.print_report(p1[0],
+ "atomic_dec_and_test variation before object free at line %s."
+ % (p2[0].line))
@r4 exists@
expression a;
@@ -71,8 +72,9 @@ fname@p2(y, ...);
p1 << r4.p1;
p2 << r4.p2;
@@
-msg = "atomic_dec_and_test variation before object free at line %s."
-coccilib.report.print_report(p1[0], msg % (p2[0].line))
+coccilib.report.print_report(p1[0],
+ "atomic_dec_and_test variation before object free at line %s."
+ % (p2[0].line))
@r2 exists@
expression a;
@@ -85,8 +87,7 @@ position p1;
@script:python depends on report@
p1 << r2.p1;
@@
-msg = "atomic_add_unless"
-coccilib.report.print_report(p1[0], msg)
+coccilib.report.print_report(p1[0], "atomic_add_unless")
@r3 exists@
expression E;
@@ -99,5 +100,4 @@ position p1;
@script:python depends on report@
p1 << r3.p1;
@@
-msg = "x = atomic_add_return(-1, ...)"
-coccilib.report.print_report(p1[0], msg)
+coccilib.report.print_report(p1[0], "x = atomic_add_return(-1, ...)")
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications
2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring
` (5 preceding siblings ...)
2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " SF Markus Elfring
@ 2018-07-16 17:21 ` SF Markus Elfring
2018-07-16 17:24 ` [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule SF Markus Elfring
` (7 more replies)
6 siblings, 8 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:21 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 19:15:26 +0200
This source code search pattern was programmed in the way that
some implementation details could be improved further.
I suggest to avoid unnecessary code repetition also in this script
for the semantic patch language.
Markus Elfring (8):
Delete an unnecessary SmPL rule
Omit placeholder specifications from a SmPL constraint
Optimise a disjunction in the first SmPL rule
Use type “expression” for another metavariable
Replace disjunction by a constraint in two SmPL rules
Use nested disjunctions in the first SmPL rule
Use string literals directly in two SmPL rules
Use format string directly in the first SmPL rule
---
V2:
Possible changes were recombined after the deletion of a questionable
SmPL rule.
.../coccinelle/api/atomic_as_refcounter.cocci | 108 ++++--------------
1 file changed, 24 insertions(+), 84 deletions(-)
--
2.18.0
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule
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 ` SF Markus Elfring
2018-07-16 17:26 ` [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constra SF Markus Elfring
` (6 subsequent siblings)
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:24 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 17:15:26 +0200
A search was specified in the rule “r4” for function calls which should be
found by the rule “r1” already in a script for the semantic patch language.
It is useless to repeat a source code search there just to determine
that a variable assignment was performed also for an input parameter
of such a function call (while the same message will be displayed so far).
Thus delete an inappropriate search specification.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
.../coccinelle/api/atomic_as_refcounter.cocci | 33 -------------------
1 file changed, 33 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 988120e0fd67..61fcaf5e45a3 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -57,39 +57,6 @@ p2 << r1.p2;
msg = "atomic_dec_and_test variation before object free at line %s."
coccilib.report.print_report(p1[0], msg % (p2[0].line))
-@r4 exists@
-identifier a, x, y;
-position p1, p2;
-identifier fname =~ ".*free.*";
-
-@@
-
-(
- atomic_dec_and_test@p1(&(a)->x)
-|
- atomic_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_test@p1(&(a)->x)
-|
- atomic64_dec_and_test@p1(&(a)->x)
-|
- local_dec_and_test@p1(&(a)->x)
-)
-...
-y=a
-...
-fname@p2(y, ...);
-
-
-@script:python depends on report@
-p1 << r4.p1;
-p2 << r4.p2;
-@@
-msg = "atomic_dec_and_test variation before object free at line %s."
-coccilib.report.print_report(p1[0], msg % (p2[0].line))
-
@r2 exists@
identifier a, x;
position p1;
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constra
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 ` 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
` (5 subsequent siblings)
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:26 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 17:34:56 +0200
A string was enclosed by placeholder specifications for
regular expressions as constraints for metavariables in a script
for the semantic patch language.
The desired search functionality can be achieved also without
the notation “.*”. Thus delete it at a specific place.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 61fcaf5e45a3..46d27b2b1dff 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -12,7 +12,7 @@ virtual report
@r1 exists@
identifier a, x;
position p1, p2;
-identifier fname =~ ".*free.*";
+identifier fname =~ "free";
identifier fname2 =~ ".*destroy.*";
identifier fname3 =~ ".*del.*";
identifier fname4 =~ ".*queue_work.*";
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 3/8] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule
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 constra SF Markus Elfring
@ 2018-07-16 17:28 ` SF Markus Elfring
2018-07-16 17:30 ` [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres SF Markus Elfring
` (4 subsequent siblings)
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:28 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 17:43:49 +0200
The variables “fname2” till “fname6” do not care for different function
parameters in the disjunction at the end of a rule in a script
for the semantic patch language.
Thus reduce this disjunction by using a regular expression with
an alternation for an optimised constraint.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 46d27b2b1dff..4da83ccfa6f6 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -13,12 +13,7 @@ virtual report
identifier a, x;
position p1, p2;
identifier fname =~ "free";
-identifier fname2 =~ ".*destroy.*";
-identifier fname3 =~ ".*del.*";
-identifier fname4 =~ ".*queue_work.*";
-identifier fname5 =~ ".*schedule_work.*";
-identifier fname6 =~ ".*call_rcu.*";
-
+identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@
(
@@ -39,14 +34,6 @@ identifier fname6 =~ ".*call_rcu.*";
fname@p2(a, ...);
|
fname2@p2(...);
-|
- fname3@p2(...);
-|
- fname4@p2(...);
-|
- fname5@p2(...);
-|
- fname6@p2(...);
)
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
` (2 preceding siblings ...)
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 ` SF Markus Elfring
2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul SF Markus Elfring
` (3 subsequent siblings)
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:30 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 18:00:54 +0200
The metavariable “a” is enclosed by parentheses in two rules of
a script for the semantic patch language.
Replace its type by “expression” so that the corresponding source code
search becomes more powerful.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 4da83ccfa6f6..62b0132d65fc 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -10,7 +10,8 @@
virtual report
@r1 exists@
-identifier a, x;
+expression a;
+identifier x;
position p1, p2;
identifier fname =~ "free";
identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@ -45,7 +46,8 @@ msg = "atomic_dec_and_test variation before object free at line %s."
coccilib.report.print_report(p1[0], msg % (p2[0].line))
@r2 exists@
-identifier a, x;
+expression a;
+identifier x;
position p1;
@@
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
` (3 preceding siblings ...)
2018-07-16 17:30 ` [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres SF Markus Elfring
@ 2018-07-16 17:32 ` 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
` (2 subsequent siblings)
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:32 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 18:12:10 +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 | 23 ++++---------------
1 file changed, 5 insertions(+), 18 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 62b0132d65fc..4484bea6c9d8 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -47,17 +47,10 @@ 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;
@@ -66,17 +59,11 @@ 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
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 6/8] Coccinelle: atomic_as_refcounter: Use nested disjunctions in the first SmPL rule
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
` (4 preceding siblings ...)
2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul SF Markus Elfring
@ 2018-07-16 17:34 ` 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
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:34 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 18:22:53 +0200
Six function names were specified for a search of function calls
by the means of a disjunction in the rule of a script for
the semantic patch language.
Refactor them into two groups so that the SmPL code repetition
could be reduced a bit.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
.../coccinelle/api/atomic_as_refcounter.cocci | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 4484bea6c9d8..7eae23dc9ea8 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -18,17 +18,15 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@
(
- atomic_dec_and_test@p1(&(a)->x)
+(atomic_dec_and_test@p1
+|atomic_long_dec_and_test@p1
+|atomic64_dec_and_test@p1
+|local_dec_and_test@p1
+) (&(a)->x)
|
- atomic_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_lock@p1(&(a)->x, ...)
-|
- atomic_long_dec_and_test@p1(&(a)->x)
-|
- atomic64_dec_and_test@p1(&(a)->x)
-|
- local_dec_and_test@p1(&(a)->x)
+(atomic_dec_and_lock@p1
+|atomic_long_dec_and_lock@p1
+) (&(a)->x, ...)
)
...
(
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 7/8] Coccinelle: atomic_as_refcounter: Use string literals directly in two SmPL rules
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
` (5 preceding siblings ...)
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 ` 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
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:36 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 18:36:41 +0200
String literals were always assigned to the Python variable “msg”
before they were used in two rules of a script for the semantic
patch language.
Delete these extra variables so that the specified string objects
are directly used for the desired data output.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 7eae23dc9ea8..c9b838941024 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -53,8 +53,7 @@ position p1;
@script:python depends on report@
p1 << r2.p1;
@@
-msg = "atomic_add_unless"
-coccilib.report.print_report(p1[0], msg)
+coccilib.report.print_report(p1[0], "atomic_add_unless")
@r3 exists@
expression E;
@@ -66,5 +65,4 @@ position p1;
@script:python depends on report@
p1 << r3.p1;
@@
-msg = "x = atomic_add_return(-1, ...)"
-coccilib.report.print_report(p1[0], msg)
+coccilib.report.print_report(p1[0], "x = atomic_add_return(-1, ...)")
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 8/8] Coccinelle: atomic_as_refcounter: Use format string directly in the first SmPL rule
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
` (6 preceding siblings ...)
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 ` SF Markus Elfring
7 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-07-16 17:39 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 16 Jul 2018 18:45:55 +0200
A format string was assigned to the Python variable “msg” before it was
used in a rule of a script for the semantic patch language.
Delete this extra variable so that the specified string object
is directly used for the desired data output.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
scripts/coccinelle/api/atomic_as_refcounter.cocci | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index c9b838941024..c2b55a5babb0 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -40,8 +40,9 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
p1 << r1.p1;
p2 << r1.p2;
@@
-msg = "atomic_dec_and_test variation before object free at line %s."
-coccilib.report.print_report(p1[0], msg % (p2[0].line))
+coccilib.report.print_report(p1[0],
+ "atomic_dec_and_test variation before object free at line %s."
+ % (p2[0].line))
@r2 exists@
expression a;
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] Coccinelle: atomic_as_refcounter: Merge two SmPL rules
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 ` SF Markus Elfring
0 siblings, 0 replies; 17+ messages in thread
From: SF Markus Elfring @ 2018-08-01 12:30 UTC (permalink / raw)
To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook,
Masahiro Yamada
Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Wed, 1 Aug 2018 14:16:01 +0200
Two rules of a script for the semantic patch language displayed
the same message.
Thus reduce duplicate SmPL code so that the desired data processing
is achieved by another nested SmPL disjunction in a single SmPL rule.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
.../coccinelle/api/atomic_as_refcounter.cocci | 50 ++++---------------
1 file changed, 10 insertions(+), 40 deletions(-)
diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci
index 1e2278ff3261..292a029d5a51 100644
--- a/scripts/coccinelle/api/atomic_as_refcounter.cocci
+++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci
@@ -11,12 +11,11 @@ virtual report
@r1 exists@
expression a;
-identifier x;
position p1, p2;
-identifier fname =~ "free";
-identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
+identifier x, y,
+ fname =~ "free",
+ fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
@@
-
(
(atomic_dec_and_test@p1
|atomic_long_dec_and_test@p1
@@ -28,14 +27,17 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)";
|atomic_long_dec_and_lock@p1
) (&(a)->x, ...)
)
-...
+ ...
(
- fname@p2(a, ...);
+(fname@p2(a, ...)
+|fname2@p2(...)
+);
|
- fname2@p2(...);
+ y = a
+ ...
+ fname@p2(y, ...);
)
-
@script:python depends on report@
p1 << r1.p1;
p2 << r1.p2;
@@ -44,38 +46,6 @@ coccilib.report.print_report(p1[0],
"atomic_dec_and_test variation before object free at line %s."
% (p2[0].line))
-@r4 exists@
-expression a;
-identifier x, y;
-position p1, p2;
-identifier fname =~ "free";
-@@
-
-(
-(atomic_dec_and_test@p1
-|atomic_long_dec_and_test@p1
-|atomic64_dec_and_test@p1
-|local_dec_and_test@p1
-) (&(a)->x)
-|
-(atomic_dec_and_lock@p1
-|atomic_long_dec_and_lock@p1
-) (&(a)->x, ...)
-)
-...
-y=a
-...
-fname@p2(y, ...);
-
-
-@script:python depends on report@
-p1 << r4.p1;
-p2 << r4.p2;
-@@
-coccilib.report.print_report(p1[0],
- "atomic_dec_and_test variation before object free at line %s."
- % (p2[0].line))
-
@r2 exists@
expression a;
identifier F =~ "^atomic(?:64|_long)?_add_unless$", x;
--
2.18.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
end of thread, other threads:[~2018-08-01 12:30 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAK7LNAT=7E0HFd+MM92VcNdA1i6AME6qyFA9sN-2dabibxkiJg@mail.gmail.com>
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 constrai 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 typ =?UTF-8?Q?e_=e2=80=9cexpressio SF Markus Elfring
2018-07-03 7:42 ` [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring
2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions " 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 constra 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 =?UTF-8?Q?type_=e2=80=9cexpres SF Markus Elfring
2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).