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: https://coccinelle.gitlabpages.inria.fr/website 13 // Comments: 14 // Options: --no-includes --include-headers 15 16 virtual context 17 virtual org 18 virtual report 19 20 @r expression@ 21 expression E; 22 position 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@ 46 p << r.p; 47 @@ 48 49 cocci.print_main("duplicated argument to & or |",p) 50 51 @script:python depends on report@ 52 p << r.p; 53 @@ 54 55 coccilib.report.print_report(p[0],"duplicated argument to & or |")
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.