]>
Commit | Line | Data |
---|---|---|
5be1df66 HS |
1 | /// Use BUG_ON instead of a if condition followed by BUG. |
2 | /// | |
3 | //# This makes an effort to find cases where BUG() follows an if | |
4 | //# condition on an expression and replaces the if condition and BUG() | |
5 | //# with a BUG_ON having the conditional expression of the if statement | |
6 | //# as argument. | |
7 | // | |
8 | // Confidence: High | |
9 | // Copyright: (C) 2014 Himangi Saraogi. GPLv2. | |
10 | // Comments: | |
7426977c | 11 | // Options: --no-includes --include-headers |
5be1df66 HS |
12 | |
13 | virtual patch | |
14 | virtual context | |
15 | virtual org | |
16 | virtual report | |
17 | ||
18 | //---------------------------------------------------------- | |
19 | // For context mode | |
20 | //---------------------------------------------------------- | |
21 | ||
22 | @depends on context@ | |
23 | expression e; | |
24 | @@ | |
25 | ||
26 | *if (e) BUG(); | |
27 | ||
28 | //---------------------------------------------------------- | |
29 | // For patch mode | |
30 | //---------------------------------------------------------- | |
31 | ||
32 | @depends on patch@ | |
33 | expression e; | |
34 | @@ | |
35 | ||
36 | -if (e) BUG(); | |
37 | +BUG_ON(e); | |
38 | ||
39 | //---------------------------------------------------------- | |
40 | // For org and report mode | |
41 | //---------------------------------------------------------- | |
42 | ||
f75621c6 | 43 | @r depends on (org || report)@ |
5be1df66 HS |
44 | expression e; |
45 | position p; | |
46 | @@ | |
47 | ||
48 | if (e) BUG@p (); | |
49 | ||
50 | @script:python depends on org@ | |
51 | p << r.p; | |
52 | @@ | |
53 | ||
54 | coccilib.org.print_todo(p[0], "WARNING use BUG_ON") | |
55 | ||
56 | @script:python depends on report@ | |
57 | p << r.p; | |
58 | @@ | |
59 | ||
5017335d | 60 | msg="WARNING: Use BUG_ON instead of if condition followed by BUG.\nPlease make sure the condition has no side effects (see conditional BUG_ON definition in include/asm-generic/bug.h)" |
5be1df66 HS |
61 | coccilib.report.print_report(p[0], msg) |
62 |