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

doublebitand.cocci (1144B)


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