boolreturn.cocci (698B)
1// SPDX-License-Identifier: GPL-2.0 2/// Return statements in functions returning bool should use 3/// true/false instead of 1/0. 4// 5// Confidence: High 6// Options: --no-includes --include-headers 7 8virtual patch 9virtual report 10virtual context 11 12@r1 depends on patch@ 13identifier fn; 14typedef bool; 15symbol false; 16symbol true; 17@@ 18 19bool fn ( ... ) 20{ 21<... 22return 23( 24- 0 25+ false 26| 27- 1 28+ true 29) 30 ; 31...> 32} 33 34@r2 depends on report || context@ 35identifier fn; 36position p; 37@@ 38 39bool fn ( ... ) 40{ 41<... 42return 43( 44* 0@p 45| 46* 1@p 47) 48 ; 49...> 50} 51 52 53@script:python depends on report@ 54p << r2.p; 55fn << r2.fn; 56@@ 57 58msg = "WARNING: return of 0/1 in function '%s' with return type bool" % fn 59coccilib.report.print_report(p[0], msg)