// SPDX-License-Identifier: GPL-2.0 | |
/// Return statements in functions returning bool should use | |
/// true/false instead of 1/0. | |
// | |
// Confidence: High | |
// Options: --no-includes --include-headers | |
virtual patch | |
virtual report | |
virtual context | |
@r1 depends on patch@ | |
identifier fn; | |
typedef bool; | |
symbol false; | |
symbol true; | |
@@ | |
bool fn ( ... ) | |
{ | |
<... | |
return | |
( | |
- 0 | |
+ false | |
| | |
- 1 | |
+ true | |
) | |
; | |
...> | |
} | |
@r2 depends on report || context@ | |
identifier fn; | |
position p; | |
@@ | |
bool fn ( ... ) | |
{ | |
<... | |
return | |
( | |
* 0@p | |
| | |
* 1@p | |
) | |
; | |
...> | |
} | |
@script:python depends on report@ | |
p << r2.p; | |
fn << r2.fn; | |
@@ | |
msg = "WARNING: return of 0/1 in function '%s' with return type bool" % fn | |
coccilib.report.print_report(p[0], msg) |