]>
Commit | Line | Data |
---|---|---|
ad99ac2f JL |
1 | /// Use WARN(1,...) rather than printk followed by WARN_ON(1) |
2 | /// | |
3 | // Confidence: High | |
4 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. | |
5 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | |
6 | // URL: http://coccinelle.lip6.fr/ | |
7 | // Comments: | |
93f14468 | 8 | // Options: --no-includes --include-headers |
ad99ac2f JL |
9 | |
10 | virtual patch | |
11 | virtual context | |
12 | virtual org | |
13 | virtual report | |
14 | ||
15 | @bad1@ | |
16 | position p; | |
17 | @@ | |
18 | ||
19 | printk(...); | |
20 | printk@p(...); | |
21 | WARN_ON(1); | |
22 | ||
23 | @r1 depends on context || report || org@ | |
24 | position p != bad1.p; | |
25 | @@ | |
26 | ||
27 | printk@p(...); | |
28 | *WARN_ON(1); | |
29 | ||
30 | @script:python depends on org@ | |
31 | p << r1.p; | |
32 | @@ | |
33 | ||
34 | cocci.print_main("printk + WARN_ON can be just WARN",p) | |
35 | ||
36 | @script:python depends on report@ | |
37 | p << r1.p; | |
38 | @@ | |
39 | ||
40 | msg = "SUGGESTION: printk + WARN_ON can be just WARN" | |
41 | coccilib.report.print_report(p[0],msg) | |
42 | ||
43 | @ok1 depends on patch@ | |
44 | expression list es; | |
45 | position p != bad1.p; | |
46 | @@ | |
47 | ||
48 | -printk@p( | |
49 | +WARN(1, | |
50 | es); | |
51 | -WARN_ON(1); | |
52 | ||
53 | @depends on patch@ | |
54 | expression list ok1.es; | |
55 | @@ | |
56 | ||
57 | if (...) | |
58 | - { | |
59 | WARN(1,es); | |
60 | - } | |
61 | ||
62 | // -------------------------------------------------------------------- | |
63 | ||
64 | @bad2@ | |
65 | position p; | |
66 | @@ | |
67 | ||
68 | printk(...); | |
69 | printk@p(...); | |
70 | WARN_ON_ONCE(1); | |
71 | ||
72 | @r2 depends on context || report || org@ | |
73 | position p != bad1.p; | |
74 | @@ | |
75 | ||
76 | printk@p(...); | |
77 | *WARN_ON_ONCE(1); | |
78 | ||
79 | @script:python depends on org@ | |
80 | p << r2.p; | |
81 | @@ | |
82 | ||
83 | cocci.print_main("printk + WARN_ON_ONCE can be just WARN_ONCE",p) | |
84 | ||
85 | @script:python depends on report@ | |
86 | p << r2.p; | |
87 | @@ | |
88 | ||
89 | msg = "SUGGESTION: printk + WARN_ON_ONCE can be just WARN_ONCE" | |
90 | coccilib.report.print_report(p[0],msg) | |
91 | ||
92 | @ok2 depends on patch@ | |
93 | expression list es; | |
94 | position p != bad2.p; | |
95 | @@ | |
96 | ||
97 | -printk@p( | |
98 | +WARN_ONCE(1, | |
99 | es); | |
100 | -WARN_ON_ONCE(1); | |
101 | ||
102 | @depends on patch@ | |
103 | expression list ok2.es; | |
104 | @@ | |
105 | ||
106 | if (...) | |
107 | - { | |
108 | WARN_ONCE(1,es); | |
109 | - } |