Linux Audio

Check our new training course

Loading...
v6.2
 1// SPDX-License-Identifier: GPL-2.0-only
 2/// Find &&/|| operations that include the same argument more than once
 3//# A common source of false positives is when the expression, or
 4//# another expresssion in the same && or || operation, performs a
 5//# side effect.
 6///
 7// Confidence: Moderate
 8// Copyright: (C) 2010 Nicolas Palix, DIKU.
 9// Copyright: (C) 2010 Julia Lawall, DIKU.
10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:
13// Options: --no-includes --include-headers
14
15virtual context
16virtual org
17virtual report
18
19@r expression@
20expression E;
21position p;
22@@
23
24(
25 E@p || ... || E
26|
27 E@p && ... && E
28)
29
30@bad@
31expression r.E,e1,e2,fn;
32position r.p;
33assignment operator op;
34@@
35
36(
37E@p
38&
39 <+... \(fn(...)\|e1 op e2\|e1++\|e1--\|++e1\|--e1\) ...+>
40)
41
42@depends on context && !bad@
43expression r.E;
44position r.p;
45@@
46
47*E@p
48
49@script:python depends on org && !bad@
50p << r.p;
51@@
52
53cocci.print_main("duplicated argument to && or ||",p)
54
55@script:python depends on report && !bad@
56p << r.p;
57@@
58
59coccilib.report.print_report(p[0],"duplicated argument to && or ||")
v6.8
 1// SPDX-License-Identifier: GPL-2.0-only
 2/// Find &&/|| operations that include the same argument more than once
 3//# A common source of false positives is when the expression, or
 4//# another expresssion in the same && or || operation, performs a
 5//# side effect.
 6///
 7// Confidence: Moderate
 8// Copyright: (C) 2010 Nicolas Palix, DIKU.
 9// Copyright: (C) 2010 Julia Lawall, DIKU.
10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:
13// Options: --no-includes --include-headers
14
15virtual context
16virtual org
17virtual report
18
19@r expression@
20expression E;
21position p;
22@@
23
24(
25 E@p || ... || E
26|
27 E@p && ... && E
28)
29
30@bad@
31expression r.E,e1,e2,fn;
32position r.p;
33assignment operator op;
34@@
35
36(
37E@p
38&
39 <+... \(fn(...)\|e1 op e2\|e1++\|e1--\|++e1\|--e1\) ...+>
40)
41
42@depends on context && !bad@
43expression r.E;
44position r.p;
45@@
46
47*E@p
48
49@script:python depends on org && !bad@
50p << r.p;
51@@
52
53cocci.print_main("duplicated argument to && or ||",p)
54
55@script:python depends on report && !bad@
56p << r.p;
57@@
58
59coccilib.report.print_report(p[0],"duplicated argument to && or ||")