0001 // SPDX-License-Identifier: GPL-2.0-only
0002 ///
0003 /// Condition !A || A && B is equivalent to !A || B.
0004 ///
0005 // Confidence: High
0006 // Copyright: (C) 2020 Denis Efremov ISPRAS
0007 // Options: --no-includes --include-headers
0008
0009 virtual patch
0010 virtual context
0011 virtual org
0012 virtual report
0013
0014 @r depends on !patch@
0015 expression A, B;
0016 position p;
0017 @@
0018
0019 * !A || (A &&@p B)
0020
0021 @depends on patch@
0022 expression A, B;
0023 @@
0024
0025 !A ||
0026 - (A && B)
0027 + B
0028
0029 @script:python depends on report@
0030 p << r.p;
0031 @@
0032
0033 coccilib.report.print_report(p[0], "WARNING !A || A && B is equivalent to !A || B")
0034
0035 @script:python depends on org@
0036 p << r.p;
0037 @@
0038
0039 coccilib.org.print_todo(p[0], "WARNING !A || A && B is equivalent to !A || B")