File: boolreturn.cocci

package info (click to toggle)
linux 3.16.7-ckt9-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 740,624 kB
  • ctags: 2,385,278
  • sloc: ansic: 12,217,941; asm: 277,354; perl: 53,978; xml: 47,771; makefile: 30,485; sh: 8,063; python: 6,597; cpp: 5,127; yacc: 4,254; lex: 2,215; awk: 741; pascal: 231; lisp: 218; sed: 30
file content (58 lines) | stat: -rw-r--r-- 662 bytes parent folder | download | duplicates (25)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/// 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)