https://github.com/Abhay13332 updated https://github.com/llvm/llvm-project/pull/230846
>From 90b1aad01e3d57c19379d89c746c397735930e64 Mon Sep 17 00:00:00 2001 From: abhay13332 <[email protected]> Date: Sun, 11 Oct 2026 01:09:35 +0530 Subject: [PATCH] [clang-tidy] Fix false negative for binary logical expressions for two operands in bugprone-redundant-branch-condition --- .../bugprone/RedundantBranchConditionCheck.cpp | 7 +++---- .../bugprone/redundant-branch-condition.cpp | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp index 8d608dd4b0e66..f6c6373969b34 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp @@ -76,10 +76,9 @@ void RedundantBranchConditionCheck::registerMatchers(MatchFinder *Finder) { ifStmt( hasCondition(anyOf( declRefExpr(hasDeclaration(ImmutableVar)).bind(OuterIfVar1Str), - binaryOperator( - hasOperatorName("&&"), - hasEitherOperand(declRefExpr(hasDeclaration(ImmutableVar)) - .bind(OuterIfVar2Str))))), + binaryOperator(hasOperatorName("&&"), + forEach((declRefExpr(hasDeclaration(ImmutableVar)) + .bind(OuterIfVar2Str)))))), hasThen(hasDescendant( ifStmt(hasCondition(anyOf( declRefExpr(hasDeclaration( diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/redundant-branch-condition.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/redundant-branch-condition.cpp index ad2238ff9984f..57ab6456a9987 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone/redundant-branch-condition.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/redundant-branch-condition.cpp @@ -12,7 +12,7 @@ bool tryToExtinguishByVal(bool); void tryPutFireOut(); bool callTheFD(); void scream(); - +bool isFireFighterComing(); bool someOtherCondition(); //===--- Basic Positives --------------------------------------------------===// @@ -278,6 +278,19 @@ void positive_direct_outer_and_rhs() { // CHECK-FIXES: {{^\ *$}} } } +void positive_direct_outer_and_rhs_bool() { + bool onFire = isBurning(); + bool isComing = isFireFighterComing(); + if (isComing && onFire) { + if (onFire) { + // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: redundant condition 'onFire' [bugprone-redundant-branch-condition] + // CHECK-FIXES: {{^\ *$}} + scream(); + } + // CHECK-FIXES: {{^\ *$}} + } +} + void positive_indirect_outer_and_rhs() { bool onFire = isBurning(); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
