Linux 4.4-rc8
[linux/fpc-iii.git] / scripts / coccinelle / misc / orplus.cocci
blob81fabf37939033eae4224f9cf9a99320e6f765cc
1 /// Check for constants that are added but are used elsewhere as bitmasks
2 /// The results should be checked manually to ensure that the nonzero
3 /// bits in the two constants are actually disjoint.
4 ///
5 // Confidence: Moderate
6 // Copyright: (C) 2013 Julia Lawall, INRIA/LIP6.  GPLv2.
7 // Copyright: (C) 2013 Gilles Muller, INRIA/LIP6.  GPLv2.
8 // URL: http://coccinelle.lip6.fr/
9 // Comments:
10 // Options: --no-includes --include-headers
12 virtual org
13 virtual report
14 virtual context
16 @r@
17 constant c;
18 identifier i;
19 expression e;
23 e | c@i
25 e & c@i
27 e |= c@i
29 e &= c@i
32 @s@
33 constant r.c,c1;
34 identifier i1;
35 position p;
39  c1 + c - 1
41 *c1@i1 +@p c
44 @script:python depends on org@
45 p << s.p;
48 cocci.print_main("sum of probable bitmasks, consider |",p)
50 @script:python depends on report@
51 p << s.p;
54 msg = "WARNING: sum of probable bitmasks, consider |"
55 coccilib.report.print_report(p[0],msg)