| 
									
										
										
										
											2010-10-24 23:37:32 +02:00
										 |  |  | /// Find &&/|| operations that include the same argument more than once | 
					
						
							|  |  |  | //# A common source of false positives is when the argument performs a side | 
					
						
							|  |  |  | //# effect. | 
					
						
							|  |  |  | /// | 
					
						
							|  |  |  | // Confidence: Moderate | 
					
						
							|  |  |  | // Copyright: (C) 2010 Nicolas Palix, DIKU.  GPLv2. | 
					
						
							|  |  |  | // Copyright: (C) 2010 Julia Lawall, DIKU.  GPLv2. | 
					
						
							|  |  |  | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.  GPLv2. | 
					
						
							|  |  |  | // URL: http://coccinelle.lip6.fr/ | 
					
						
							|  |  |  | // Comments: | 
					
						
							| 
									
										
										
										
											2013-06-20 13:10:56 +02:00
										 |  |  | // Options: --no-includes --include-headers | 
					
						
							| 
									
										
										
										
											2010-10-24 23:37:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | virtual context | 
					
						
							|  |  |  | virtual org | 
					
						
							|  |  |  | virtual report | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @r expression@ | 
					
						
							|  |  |  | expression E; | 
					
						
							|  |  |  | position p; | 
					
						
							|  |  |  | @@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ( | 
					
						
							|  |  |  | * E@p | 
					
						
							|  |  |  |   || ... || E | 
					
						
							|  |  |  | | | 
					
						
							|  |  |  | * E@p | 
					
						
							|  |  |  |   && ... && E | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @script:python depends on org@ | 
					
						
							|  |  |  | p << r.p; | 
					
						
							|  |  |  | @@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cocci.print_main("duplicated argument to && or ||",p) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @script:python depends on report@ | 
					
						
							|  |  |  | p << r.p; | 
					
						
							|  |  |  | @@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | coccilib.report.print_report(p[0],"duplicated argument to && or ||") |