/// Find &&/|| operations that include the same argument more than once
//# A common source of false positives is when the expression, or
//# another expresssion in the same && or || operation, 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:
// Options: --no-includes --include-headers

virtual context
virtual org
virtual report

@r expression@
expression E;
position p;
@@

(
 E@p || ... || E
|
 E@p && ... && E
)

@bad@
expression r.E,e1,e2,fn;
position r.p;
assignment operator op;
@@

(
E@p
&
 <+... \(fn(...)\|e1 op e2\|e1++\|e1--\|++e1\|--e1\) ...+>
)

@depends on context && !bad@
expression r.E;
position r.p;
@@

*E@p

@script:python depends on org && !bad@
p << r.p;
@@

cocci.print_main("duplicated argument to && or ||",p)

@script:python depends on report && !bad@
p << r.p;
@@

coccilib.report.print_report(p[0],"duplicated argument to && or ||")
