summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrantisek Sumsal <frantisek@sumsal.cz>2022-05-30 18:17:11 +0200
committerFrantisek Sumsal <frantisek@sumsal.cz>2022-05-30 18:17:11 +0200
commita0aca8821c622477d69ccca362ddb473d599636a (patch)
treedcfa7ec42f5512de9632a217a1b2fd89cca9cc5a
parentjournal: return & log in one statement (diff)
downloadsystemd-a0aca8821c622477d69ccca362ddb473d599636a.tar.xz
systemd-a0aca8821c622477d69ccca362ddb473d599636a.zip
coccinelle: don't try to use IN_SET() in assert_cc()
Since assert_cc() requires an integral constant expression.
-rw-r--r--coccinelle/in_set.cocci22
1 files changed, 17 insertions, 5 deletions
diff --git a/coccinelle/in_set.cocci b/coccinelle/in_set.cocci
index 8be786dc2d..a3b02f9609 100644
--- a/coccinelle/in_set.cocci
+++ b/coccinelle/in_set.cocci
@@ -1,26 +1,38 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/* Limit the number of expressions to 6 for performance reasons */
+
+@ is_in_assert_cc @
+identifier id = assert_cc;
+position p1;
+expression e;
+constant n0;
+@@
+
+ id(e@p1 == n0 || ...);
+
@@
expression e;
+position p2 != is_in_assert_cc.p1;
/* Exclude JsonVariant * from the transformation, as it can't work with the
* current version of the IN_SET macro */
typedef JsonVariant;
type T != JsonVariant*;
constant T n0, n1, n2, n3, n4, n5;
@@
+
(
-- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5
+- e@p2 == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5
+ IN_SET(e, n0, n1, n2, n3, n4, n5)
|
-- e == n0 || e == n1 || e == n2 || e == n3 || e == n4
+- e@p2 == n0 || e == n1 || e == n2 || e == n3 || e == n4
+ IN_SET(e, n0, n1, n2, n3, n4)
|
-- e == n0 || e == n1 || e == n2 || e == n3
+- e@p2 == n0 || e == n1 || e == n2 || e == n3
+ IN_SET(e, n0, n1, n2, n3)
|
-- e == n0 || e == n1 || e == n2
+- e@p2 == n0 || e == n1 || e == n2
+ IN_SET(e, n0, n1, n2)
|
-- e == n0 || e == n1
+- e@p2 == n0 || e == n1
+ IN_SET(e, n0, n1)
)