treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / scripts / coccinelle / misc / boolinit.cocci
blobfed6126e2b9d30e3c00e2f46970e8780c7392813
1 // SPDX-License-Identifier: GPL-2.0-only
2 /// Bool initializations should use true and false.  Bool tests don't need
3 /// comparisons.  Based on contributions from Joe Perches, Rusty Russell
4 /// and Bruce W Allan.
5 ///
6 // Confidence: High
7 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
8 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
9 // URL: http://coccinelle.lip6.fr/
10 // Options: --include-headers
12 virtual patch
13 virtual context
14 virtual org
15 virtual report
17 @boolok@
18 symbol true,false;
21 true
23 false
26 @depends on patch@
27 bool t;
31 - t == true
32 + t
34 - true == t
35 + t
37 - t != true
38 + !t
40 - true != t
41 + !t
43 - t == false
44 + !t
46 - false == t
47 + !t
49 - t != false
50 + t
52 - false != t
53 + t
56 @depends on patch disable is_zero, isnt_zero@
57 bool t;
61 - t == 1
62 + t
64 - t != 1
65 + !t
67 - t == 0
68 + !t
70 - t != 0
71 + t
74 @depends on patch && boolok@
75 bool b;
78  b =
79 - 0
80 + false
82  b =
83 - 1
84 + true
87 // ---------------------------------------------------------------------
89 @r1 depends on !patch@
90 bool t;
91 position p;
95 * t@p == true
97 * true == t@p
99 * t@p != true
101 * true != t@p
103 * t@p == false
105 * false == t@p
107 * t@p != false
109 * false != t@p
112 @r2 depends on !patch disable is_zero, isnt_zero@
113 bool t;
114 position p;
118 * t@p == 1
120 * t@p != 1
122 * t@p == 0
124 * t@p != 0
127 @r3 depends on !patch && boolok@
128 bool b;
129 position p1;
132 *b@p1 = 0
134 *b@p1 = 1
137 @r4 depends on !patch@
138 bool b;
139 position p2;
140 identifier i;
141 constant c != {0,1};
144  b = i
146 *b@p2 = c
149 @script:python depends on org@
150 p << r1.p;
153 cocci.print_main("WARNING: Comparison to bool",p)
155 @script:python depends on org@
156 p << r2.p;
159 cocci.print_main("WARNING: Comparison of 0/1 to bool variable",p)
161 @script:python depends on org@
162 p1 << r3.p1;
165 cocci.print_main("WARNING: Assignment of 0/1 to bool variable",p1)
167 @script:python depends on org@
168 p2 << r4.p2;
171 cocci.print_main("ERROR: Assignment of non-0/1 constant to bool variable",p2)
173 @script:python depends on report@
174 p << r1.p;
177 coccilib.report.print_report(p[0],"WARNING: Comparison to bool")
179 @script:python depends on report@
180 p << r2.p;
183 coccilib.report.print_report(p[0],"WARNING: Comparison of 0/1 to bool variable")
185 @script:python depends on report@
186 p1 << r3.p1;
189 coccilib.report.print_report(p1[0],"WARNING: Assignment of 0/1 to bool variable")
191 @script:python depends on report@
192 p2 << r4.p2;
195 coccilib.report.print_report(p2[0],"ERROR: Assignment of non-0/1 constant to bool variable")