Rule r is only use in org or report mode, so only execute it in those cases. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Michal Marek <mmarek@suse.com>
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /// Use BUG_ON instead of a if condition followed by BUG.
 | |
| ///
 | |
| //# This makes an effort to find cases where BUG() follows an if
 | |
| //# condition on an expression and replaces the if condition and BUG()
 | |
| //# with a BUG_ON having the conditional expression of the if statement
 | |
| //# as argument.
 | |
| //
 | |
| // Confidence: High
 | |
| // Copyright: (C) 2014 Himangi Saraogi.  GPLv2.
 | |
| // Comments:
 | |
| // Options: --no-includes --include-headers
 | |
| 
 | |
| virtual patch
 | |
| virtual context
 | |
| virtual org
 | |
| virtual report
 | |
| 
 | |
| //----------------------------------------------------------
 | |
| //  For context mode
 | |
| //----------------------------------------------------------
 | |
| 
 | |
| @depends on context@
 | |
| expression e;
 | |
| @@
 | |
| 
 | |
| *if (e) BUG();
 | |
| 
 | |
| //----------------------------------------------------------
 | |
| //  For patch mode
 | |
| //----------------------------------------------------------
 | |
| 
 | |
| @depends on patch@
 | |
| expression e;
 | |
| @@
 | |
| 
 | |
| -if (e) BUG();
 | |
| +BUG_ON(e);
 | |
| 
 | |
| //----------------------------------------------------------
 | |
| //  For org and report mode
 | |
| //----------------------------------------------------------
 | |
| 
 | |
| @r depends on (org || report)@
 | |
| expression e;
 | |
| position p;
 | |
| @@
 | |
| 
 | |
|  if (e) BUG@p ();
 | |
| 
 | |
| @script:python depends on org@
 | |
| p << r.p;
 | |
| @@
 | |
| 
 | |
| coccilib.org.print_todo(p[0], "WARNING use BUG_ON")
 | |
| 
 | |
| @script:python depends on report@
 | |
| p << r.p;
 | |
| @@
 | |
| 
 | |
| 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)"
 | |
| coccilib.report.print_report(p[0], msg)
 | |
| 
 |