18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/// Use BUG_ON instead of a if condition followed by BUG. 38c2ecf20Sopenharmony_ci/// 48c2ecf20Sopenharmony_ci//# This makes an effort to find cases where BUG() follows an if 58c2ecf20Sopenharmony_ci//# condition on an expression and replaces the if condition and BUG() 68c2ecf20Sopenharmony_ci//# with a BUG_ON having the conditional expression of the if statement 78c2ecf20Sopenharmony_ci//# as argument. 88c2ecf20Sopenharmony_ci// 98c2ecf20Sopenharmony_ci// Confidence: High 108c2ecf20Sopenharmony_ci// Copyright: (C) 2014 Himangi Saraogi. 118c2ecf20Sopenharmony_ci// Comments: 128c2ecf20Sopenharmony_ci// Options: --no-includes --include-headers 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_civirtual patch 158c2ecf20Sopenharmony_civirtual context 168c2ecf20Sopenharmony_civirtual org 178c2ecf20Sopenharmony_civirtual report 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci//---------------------------------------------------------- 208c2ecf20Sopenharmony_ci// For context mode 218c2ecf20Sopenharmony_ci//---------------------------------------------------------- 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci@depends on context@ 248c2ecf20Sopenharmony_ciexpression e; 258c2ecf20Sopenharmony_ci@@ 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci*if (e) BUG(); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci//---------------------------------------------------------- 308c2ecf20Sopenharmony_ci// For patch mode 318c2ecf20Sopenharmony_ci//---------------------------------------------------------- 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci@depends on patch@ 348c2ecf20Sopenharmony_ciexpression e; 358c2ecf20Sopenharmony_ci@@ 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci-if (e) BUG(); 388c2ecf20Sopenharmony_ci+BUG_ON(e); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci//---------------------------------------------------------- 418c2ecf20Sopenharmony_ci// For org and report mode 428c2ecf20Sopenharmony_ci//---------------------------------------------------------- 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci@r depends on (org || report)@ 458c2ecf20Sopenharmony_ciexpression e; 468c2ecf20Sopenharmony_ciposition p; 478c2ecf20Sopenharmony_ci@@ 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci if (e) BUG@p (); 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci@script:python depends on org@ 528c2ecf20Sopenharmony_cip << r.p; 538c2ecf20Sopenharmony_ci@@ 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], "WARNING use BUG_ON") 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci@script:python depends on report@ 588c2ecf20Sopenharmony_cip << r.p; 598c2ecf20Sopenharmony_ci@@ 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_cimsg="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)" 628c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 638c2ecf20Sopenharmony_ci 64