Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / scripts / coccinelle / misc / bugon.cocci
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:
11 // Options: --no-includes --include-headers
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
43 @r@
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
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)"
61 coccilib.report.print_report(p[0], msg)
62