Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / scripts / coccinelle / misc / orplus.cocci
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
11
12 virtual org
13 virtual report
14 virtual context
15
16 @r@
17 constant c;
18 identifier i;
19 expression e;
20 @@
21
22 (
23 e | c@i
24 |
25 e & c@i
26 |
27 e |= c@i
28 |
29 e &= c@i
30 )
31
32 @s@
33 constant r.c,c1;
34 identifier i1;
35 position p;
36 @@
37
38 (
39  c1 + c - 1
40 |
41 *c1@i1 +@p c
42 )
43
44 @script:python depends on org@
45 p << s.p;
46 @@
47
48 cocci.print_main("sum of probable bitmasks, consider |",p)
49
50 @script:python depends on report@
51 p << s.p;
52 @@
53
54 msg = "WARNING: sum of probable bitmasks, consider |"
55 coccilib.report.print_report(p[0],msg)