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