162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/// 362306a36Sopenharmony_ci/// Condition !A || A && B is equivalent to !A || B. 462306a36Sopenharmony_ci/// 562306a36Sopenharmony_ci// Confidence: High 662306a36Sopenharmony_ci// Copyright: (C) 2020 Denis Efremov ISPRAS 762306a36Sopenharmony_ci// Options: --no-includes --include-headers 862306a36Sopenharmony_ci 962306a36Sopenharmony_civirtual patch 1062306a36Sopenharmony_civirtual context 1162306a36Sopenharmony_civirtual org 1262306a36Sopenharmony_civirtual report 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci@r depends on !patch@ 1562306a36Sopenharmony_ciexpression A, B; 1662306a36Sopenharmony_ciposition p; 1762306a36Sopenharmony_ci@@ 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci* !A || (A &&@p B) 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci@depends on patch@ 2262306a36Sopenharmony_ciexpression A, B; 2362306a36Sopenharmony_ci@@ 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci !A || 2662306a36Sopenharmony_ci- (A && B) 2762306a36Sopenharmony_ci+ B 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci@script:python depends on report@ 3062306a36Sopenharmony_cip << r.p; 3162306a36Sopenharmony_ci@@ 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cicoccilib.report.print_report(p[0], "WARNING !A || A && B is equivalent to !A || B") 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci@script:python depends on org@ 3662306a36Sopenharmony_cip << r.p; 3762306a36Sopenharmony_ci@@ 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_cicoccilib.org.print_todo(p[0], "WARNING !A || A && B is equivalent to !A || B") 40