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 13virtual patch 14virtual context 15virtual org 16virtual report 17 18//---------------------------------------------------------- 19// For context mode 20//---------------------------------------------------------- 21 22@depends on context@ 23expression e; 24@@ 25 26*if (e) BUG(); 27 28//---------------------------------------------------------- 29// For patch mode 30//---------------------------------------------------------- 31 32@depends on patch@ 33expression e; 34@@ 35 36-if (e) BUG(); 37+BUG_ON(e); 38 39//---------------------------------------------------------- 40// For org and report mode 41//---------------------------------------------------------- 42 43@r@ 44expression e; 45position p; 46@@ 47 48 if (e) BUG@p (); 49 50@script:python depends on org@ 51p << r.p; 52@@ 53 54coccilib.org.print_todo(p[0], "WARNING use BUG_ON") 55 56@script:python depends on report@ 57p << r.p; 58@@ 59 60msg="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)" 61coccilib.report.print_report(p[0], msg) 62 63