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