Commit | Line | Data |
---|---|---|
51169c80 NP |
1 | /// |
2 | /// Casting (void *) value returned by kmalloc is useless | |
3 | /// as mentioned in Documentation/CodingStyle, Chap 14. | |
4 | /// | |
5 | // Confidence: High | |
6 | // Copyright: 2009,2010 Nicolas Palix, DIKU. GPLv2. | |
7 | // URL: http://coccinelle.lip6.fr/ | |
8 | // Options: -no_includes -include_headers | |
9 | // | |
10 | // Keywords: kmalloc, kzalloc, kcalloc | |
11 | // Version min: < 2.6.12 kmalloc | |
12 | // Version min: < 2.6.12 kcalloc | |
13 | // Version min: 2.6.14 kzalloc | |
14 | // | |
15 | ||
16 | virtual context | |
17 | virtual patch | |
18 | virtual org | |
19 | virtual report | |
20 | ||
21 | //---------------------------------------------------------- | |
22 | // For context mode | |
23 | //---------------------------------------------------------- | |
24 | ||
25 | @depends on context@ | |
26 | type T; | |
27 | @@ | |
28 | ||
29 | * (T *) | |
30 | \(kmalloc\|kzalloc\|kcalloc\)(...) | |
31 | ||
32 | //---------------------------------------------------------- | |
33 | // For patch mode | |
34 | //---------------------------------------------------------- | |
35 | ||
36 | @depends on patch@ | |
37 | type T; | |
38 | @@ | |
39 | ||
40 | - (T *) | |
41 | \(kmalloc\|kzalloc\|kcalloc\)(...) | |
42 | ||
43 | //---------------------------------------------------------- | |
44 | // For org and report mode | |
45 | //---------------------------------------------------------- | |
46 | ||
47 | @r depends on org || report@ | |
48 | type T; | |
49 | position p; | |
50 | @@ | |
51 | ||
52 | (T@p *)\(kmalloc\|kzalloc\|kcalloc\)(...) | |
53 | ||
54 | @script:python depends on org@ | |
55 | p << r.p; | |
56 | t << r.T; | |
57 | @@ | |
58 | ||
59 | coccilib.org.print_safe_todo(p[0], t) | |
60 | ||
61 | @script:python depends on report@ | |
62 | p << r.p; | |
63 | t << r.T; | |
64 | @@ | |
65 | ||
66 | msg="WARNING: casting value returned by k[cmz]alloc to (%s *) is useless." % (t) | |
67 | coccilib.report.print_report(p[0], msg) |