Commit 97c1cf8fdbce332bfacc3e38aae3fe2af1369906
Committed by
Michal Marek
1 parent
10247179a7
Exists in
master
and in
20 other branches
Coccinelle: Find doubled arguments to boolean or bit operators.
Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Nicolas Palix <npalix.work@gmail.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
Showing 2 changed files with 94 additions and 0 deletions Side-by-side Diff
scripts/coccinelle/tests/doublebitand.cocci
1 | +/// Find bit operations that include the same argument more than once | |
2 | +//# One source of false positives is when the argument performs a side | |
3 | +//# effect. Another source of false positives is when a neutral value | |
4 | +//# such as 0 for | is used to indicate no information, to maintain the | |
5 | +//# same structure as other similar expressions | |
6 | +/// | |
7 | +// Confidence: Moderate | |
8 | +// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2. | |
9 | +// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2. | |
10 | +// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | |
11 | +// URL: http://coccinelle.lip6.fr/ | |
12 | +// Comments: | |
13 | +// Options: -no_includes -include_headers | |
14 | + | |
15 | +virtual context | |
16 | +virtual org | |
17 | +virtual report | |
18 | + | |
19 | +@r expression@ | |
20 | +expression E; | |
21 | +position p; | |
22 | +@@ | |
23 | + | |
24 | +( | |
25 | +* E@p | |
26 | + & ... & E | |
27 | +| | |
28 | +* E@p | |
29 | + | ... | E | |
30 | +| | |
31 | +* E@p | |
32 | + & ... & !E | |
33 | +| | |
34 | +* E@p | |
35 | + | ... | !E | |
36 | +| | |
37 | +* !E@p | |
38 | + & ... & E | |
39 | +| | |
40 | +* !E@p | |
41 | + | ... | E | |
42 | +) | |
43 | + | |
44 | +@script:python depends on org@ | |
45 | +p << r.p; | |
46 | +@@ | |
47 | + | |
48 | +cocci.print_main("duplicated argument to & or |",p) | |
49 | + | |
50 | +@script:python depends on report@ | |
51 | +p << r.p; | |
52 | +@@ | |
53 | + | |
54 | +coccilib.report.print_report(p[0],"duplicated argument to & or |") |
scripts/coccinelle/tests/doubletest.cocci
1 | +/// Find &&/|| operations that include the same argument more than once | |
2 | +//# A common source of false positives is when the argument performs a side | |
3 | +//# effect. | |
4 | +/// | |
5 | +// Confidence: Moderate | |
6 | +// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2. | |
7 | +// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2. | |
8 | +// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | |
9 | +// URL: http://coccinelle.lip6.fr/ | |
10 | +// Comments: | |
11 | +// Options: -no_includes -include_headers | |
12 | + | |
13 | +virtual context | |
14 | +virtual org | |
15 | +virtual report | |
16 | + | |
17 | +@r expression@ | |
18 | +expression E; | |
19 | +position p; | |
20 | +@@ | |
21 | + | |
22 | +( | |
23 | +* E@p | |
24 | + || ... || E | |
25 | +| | |
26 | +* E@p | |
27 | + && ... && E | |
28 | +) | |
29 | + | |
30 | +@script:python depends on org@ | |
31 | +p << r.p; | |
32 | +@@ | |
33 | + | |
34 | +cocci.print_main("duplicated argument to && or ||",p) | |
35 | + | |
36 | +@script:python depends on report@ | |
37 | +p << r.p; | |
38 | +@@ | |
39 | + | |
40 | +coccilib.report.print_report(p[0],"duplicated argument to && or ||") |