cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

doubletest.cocci (1096B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/// Find &&/|| operations that include the same argument more than once
      3//# A common source of false positives is when the expression, or
      4//# another expresssion in the same && or || operation, performs a
      5//# side effect.
      6///
      7// Confidence: Moderate
      8// Copyright: (C) 2010 Nicolas Palix, DIKU.
      9// Copyright: (C) 2010 Julia Lawall, DIKU.
     10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
     11// URL: http://coccinelle.lip6.fr/
     12// Comments:
     13// Options: --no-includes --include-headers
     14
     15virtual context
     16virtual org
     17virtual report
     18
     19@r expression@
     20expression E;
     21position p;
     22@@
     23
     24(
     25 E@p || ... || E
     26|
     27 E@p && ... && E
     28)
     29
     30@bad@
     31expression r.E,e1,e2,fn;
     32position r.p;
     33assignment operator op;
     34@@
     35
     36(
     37E@p
     38&
     39 <+... \(fn(...)\|e1 op e2\|e1++\|e1--\|++e1\|--e1\) ...+>
     40)
     41
     42@depends on context && !bad@
     43expression r.E;
     44position r.p;
     45@@
     46
     47*E@p
     48
     49@script:python depends on org && !bad@
     50p << r.p;
     51@@
     52
     53cocci.print_main("duplicated argument to && or ||",p)
     54
     55@script:python depends on report && !bad@
     56p << r.p;
     57@@
     58
     59coccilib.report.print_report(p[0],"duplicated argument to && or ||")