summaryrefslogtreecommitdiffstats
path: root/coccinelle/in_set.cocci
blob: a3b02f9609bea1c5cc7610b9fd7a0d73f1857ca5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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@p2 == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5
+ IN_SET(e, n0, n1, n2, n3, n4, n5)
|
- e@p2 == n0 || e == n1 || e == n2 || e == n3 || e == n4
+ IN_SET(e, n0, n1, n2, n3, n4)
|
- e@p2 == n0 || e == n1 || e == n2 || e == n3
+ IN_SET(e, n0, n1, n2, n3)
|
- e@p2 == n0 || e == n1 || e == n2
+ IN_SET(e, n0, n1, n2)
|
- e@p2 == n0 || e == n1
+ IN_SET(e, n0, n1)
)