coccinelle: misc: add excluded_middle.cocci script
Check for !A || A && B condition. It's equivalent to !A || B. Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
This commit is contained in:
parent
a19d135834
commit
b76f0ea013
39
scripts/coccinelle/misc/excluded_middle.cocci
Normal file
39
scripts/coccinelle/misc/excluded_middle.cocci
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
///
|
||||||
|
/// Condition !A || A && B is equivalent to !A || B.
|
||||||
|
///
|
||||||
|
// Confidence: High
|
||||||
|
// Copyright: (C) 2020 Denis Efremov ISPRAS
|
||||||
|
// Options: --no-includes --include-headers
|
||||||
|
|
||||||
|
virtual patch
|
||||||
|
virtual context
|
||||||
|
virtual org
|
||||||
|
virtual report
|
||||||
|
|
||||||
|
@r depends on !patch@
|
||||||
|
expression A, B;
|
||||||
|
position p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
* !A || (A &&@p B)
|
||||||
|
|
||||||
|
@depends on patch@
|
||||||
|
expression A, B;
|
||||||
|
@@
|
||||||
|
|
||||||
|
!A ||
|
||||||
|
- (A && B)
|
||||||
|
+ B
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p << r.p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
coccilib.report.print_report(p[0], "WARNING !A || A && B is equivalent to !A || B")
|
||||||
|
|
||||||
|
@script:python depends on org@
|
||||||
|
p << r.p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
coccilib.org.print_todo(p[0], "WARNING !A || A && B is equivalent to !A || B")
|
Loading…
x
Reference in New Issue
Block a user