WIP FPC-III support
[linux/fpc-iii.git] / scripts / coccinelle / misc / bugon.cocci
blob8d595c3584087c58012d542a69472c2887a60f3e
1 // SPDX-License-Identifier: GPL-2.0-only
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
10 // Copyright: (C) 2014 Himangi Saraogi.
11 // Comments:
12 // Options: --no-includes --include-headers
14 virtual patch
15 virtual context
16 virtual org
17 virtual report
19 //----------------------------------------------------------
20 //  For context mode
21 //----------------------------------------------------------
23 @depends on context@
24 expression e;
27 *if (e) BUG();
29 //----------------------------------------------------------
30 //  For patch mode
31 //----------------------------------------------------------
33 @depends on patch@
34 expression e;
37 -if (e) BUG();
38 +BUG_ON(e);
40 //----------------------------------------------------------
41 //  For org and report mode
42 //----------------------------------------------------------
44 @r depends on (org || report)@
45 expression e;
46 position p;
49  if (e) BUG@p ();
51 @script:python depends on org@
52 p << r.p;
55 coccilib.org.print_todo(p[0], "WARNING use BUG_ON")
57 @script:python depends on report@
58 p << r.p;
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)"
62 coccilib.report.print_report(p[0], msg)