pandora: defconfig: update
[pandora-kernel.git] / 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 |")