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