Author: Baranov Victor
Date: 2026-08-07T14:29:32+03:00
New Revision: 1533fd95be9ff691b0bd70e589ffa273cf64e9db

URL: 
https://github.com/llvm/llvm-project/commit/1533fd95be9ff691b0bd70e589ffa273cf64e9db
DIFF: 
https://github.com/llvm/llvm-project/commit/1533fd95be9ff691b0bd70e589ffa273cf64e9db.diff

LOG: [clang-tidy][NFC] Apply readability-redundant-nested-if 3/N (#214693)

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
    clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
    clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
    clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
    clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
    clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
    clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
    clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
    clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
    clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
    clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
    clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
    clang-tools-extra/clang-tidy/utils/Aliasing.cpp
    clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
    clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
    clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
    clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
    clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
    clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp 
b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
index be6a4f30e610e..e74620739d94f 100644
--- a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
@@ -88,11 +88,10 @@ static bool isRValueReferenceParam(const Expr *Invocation,
       return true;
     if (const auto *ConstructCallExpr =
             dyn_cast<CXXConstructExpr>(Invocation)) {
-      if (const auto *ConstructorDecl = ConstructCallExpr->getConstructor()) {
-        if (!ConstructorDecl->isCopyOrMoveConstructor() &&
-            !ConstructorDecl->isDefaultConstructor())
-          return true;
-      }
+      if (const auto *ConstructorDecl = ConstructCallExpr->getConstructor();
+          ConstructorDecl && !ConstructorDecl->isCopyOrMoveConstructor() &&
+          !ConstructorDecl->isDefaultConstructor())
+        return true;
     }
   }
   return false;

diff  --git a/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp 
b/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
index e2ea0cd112a3f..e887a9862ca5f 100644
--- a/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
@@ -175,10 +175,8 @@ void UseStdMoveCheck::check(const MatchFinder::MatchResult 
&Result) {
         if (!S.isReachable())
           continue;
         auto &W = CFGState.find(&*S)->second;
-        if (W.Ready) {
-          if (--W.RemainingSuccessors == 0)
-            WorkList.push_back(&*S);
-        }
+        if (W.Ready && --W.RemainingSuccessors == 0)
+          WorkList.push_back(&*S);
       }
     }
   }

diff  --git 
a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
index c5fbd3022756d..2db5385052843 100644
--- a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
@@ -339,13 +339,12 @@ void ContainerSizeEmptyCheck::check(const 
MatchFinder::MatchResult &Result) {
       return;
 
     // Always true/false, no warnings for that.
-    if (Value == 0) {
-      if ((OpCode == BinaryOperatorKind::BO_GT && !ContainerIsLHS) ||
-          (OpCode == BinaryOperatorKind::BO_LT && ContainerIsLHS) ||
-          (OpCode == BinaryOperatorKind::BO_LE && !ContainerIsLHS) ||
-          (OpCode == BinaryOperatorKind::BO_GE && ContainerIsLHS))
-        return;
-    }
+    if (Value == 0 &&
+        ((OpCode == BinaryOperatorKind::BO_GT && !ContainerIsLHS) ||
+         (OpCode == BinaryOperatorKind::BO_LT && ContainerIsLHS) ||
+         (OpCode == BinaryOperatorKind::BO_LE && !ContainerIsLHS) ||
+         (OpCode == BinaryOperatorKind::BO_GE && ContainerIsLHS)))
+      return;
 
     // Do not warn for size > 1, 1 < size, size <= 1, 1 >= size.
     if (Value == 1) {

diff  --git 
a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
index 86cc399611a83..dfbd061986128 100644
--- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
@@ -1241,9 +1241,9 @@ StyleKind IdentifierNamingCheck::findStyleKind(
   // C++17 structured bindings: treat each binding as if it were a variable
   // with the same storage and qualifiers as the parent DecompositionDecl.
   if (const auto *BD = dyn_cast<BindingDecl>(D)) {
-    if (const auto *Decomp = 
dyn_cast_or_null<VarDecl>(BD->getDecomposedDecl()))
-      if (!BD->getType().isNull())
-        return findStyleKindForVar(Decomp, BD->getType(), NamingStyles);
+    if (const auto *Decomp = 
dyn_cast_or_null<VarDecl>(BD->getDecomposedDecl());
+        Decomp && !BD->getType().isNull())
+      return findStyleKindForVar(Decomp, BD->getType(), NamingStyles);
     return SK_Invalid;
   }
 
@@ -1255,9 +1255,9 @@ StyleKind IdentifierNamingCheck::findStyleKind(
     // If this method has the same name as any base method, this is likely
     // necessary even if it's not an override. e.g. CRTP.
     for (const CXXBaseSpecifier &Base : Decl->getParent()->bases())
-      if (const auto *RD = Base.getType()->getAsCXXRecordDecl())
-        if (RD->hasMemberName(Decl->getDeclName()))
-          return SK_Invalid;
+      if (const auto *RD = Base.getType()->getAsCXXRecordDecl();
+          RD && RD->hasMemberName(Decl->getDeclName()))
+        return SK_Invalid;
 
     if (Decl->isConstexpr() && NamingStyles[SK_ConstexprMethod])
       return SK_ConstexprMethod;

diff  --git a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
index acf9503f265fe..c0b11b7fc1afb 100644
--- a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
@@ -178,9 +178,10 @@ bool MagicNumbersCheck::isConstant(const 
MatchFinder::MatchResult &Result,
 
         // Don't warn on string user defined literals:
         // std::string s = "Hello World"s;
-        if (const auto *UDL = Parent.get<UserDefinedLiteral>())
-          if (UDL->getLiteralOperatorKind() == UserDefinedLiteral::LOK_String)
-            return true;
+        if (const auto *UDL = Parent.get<UserDefinedLiteral>();
+            UDL &&
+            UDL->getLiteralOperatorKind() == UserDefinedLiteral::LOK_String)
+          return true;
 
         return false;
       });

diff  --git 
a/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
index 967c63db51dd7..e33a045095147 100644
--- a/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
@@ -177,10 +177,9 @@ class FindUsageOfThis : public 
RecursiveASTVisitor<FindUsageOfThis> {
     const auto *Parent = getParentExprIgnoreParens(E);
 
     // Look through deref of this.
-    if (const auto *UnOp = dyn_cast_or_null<UnaryOperator>(Parent)) {
-      if (UnOp->getOpcode() == UO_Deref)
-        Parent = getParentExprIgnoreParens(UnOp);
-    }
+    if (const auto *UnOp = dyn_cast_or_null<UnaryOperator>(Parent);
+        UnOp && UnOp->getOpcode() == UO_Deref)
+      Parent = getParentExprIgnoreParens(UnOp);
 
     // It's okay to
     //  return (const S*)this;
@@ -195,9 +194,9 @@ class FindUsageOfThis : public 
RecursiveASTVisitor<FindUsageOfThis> {
       //   (const T)(S->t)
       //   (LValueToRValue)(S->t)
       // when 't' is either of builtin type or a public member.
-    } else if (const auto *Member = dyn_cast_or_null<MemberExpr>(Parent)) {
-      if (visitUser(Member, /*OnConstObject=*/false))
-        return true;
+    } else if (const auto *Member = dyn_cast_or_null<MemberExpr>(Parent);
+               Member && visitUser(Member, /*OnConstObject=*/false)) {
+      return true;
     }
 
     // Unknown user of this.

diff  --git a/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
index a7bd42e7b39f0..07d1bbeccbc16 100644
--- a/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
@@ -100,9 +100,10 @@ void NamedParameterCheck::check(const 
MatchFinder::MatchResult &Result) {
       continue;
 
     // Skip gmock testing::Unused parameters.
-    if (const auto *Typedef = Parm->getType()->getAs<TypedefType>())
-      if (Typedef->getDecl()->getQualifiedNameAsString() == "testing::Unused")
-        continue;
+    if (const auto *Typedef = Parm->getType()->getAs<TypedefType>();
+        Typedef &&
+        Typedef->getDecl()->getQualifiedNameAsString() == "testing::Unused")
+      continue;
 
     // Skip std::nullptr_t.
     if (Parm->getType().getCanonicalType()->isNullPtrType())

diff  --git 
a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
index 4bfe816fd6004..12113fa3b570a 100644
--- a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
@@ -75,10 +75,9 @@ void NonConstParameterCheck::registerMatchers(MatchFinder 
*Finder) {
 void NonConstParameterCheck::check(const MatchFinder::MatchResult &Result) {
   if (const auto *Parm = Result.Nodes.getNodeAs<ParmVarDecl>("Parm")) {
     if (const DeclContext *D = Parm->getParentFunctionOrMethod()) {
-      if (const auto *M = dyn_cast<CXXMethodDecl>(D)) {
-        if (M->isVirtual() || M->size_overridden_methods() != 0)
-          return;
-      }
+      if (const auto *M = dyn_cast<CXXMethodDecl>(D);
+          M && (M->isVirtual() || M->size_overridden_methods() != 0))
+        return;
     }
     addParm(Parm);
   } else if (const auto *Ctor =

diff  --git 
a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
index 069350599d270..9e55613f0b969 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
@@ -136,18 +136,18 @@ void RedundantStringInitCheck::check(const 
MatchFinder::MatchResult &Result) {
   }
   if (const auto *CtorInit =
           Result.Nodes.getNodeAs<CXXCtorInitializer>("ctorInit")) {
-    if (const FieldDecl *Member = CtorInit->getMember()) {
-      if (!Member->hasInClassInitializer() ||
-          Result.Nodes.getNodeAs<Expr>("empty_init")) {
-        // The String isn't declared in the class with an initializer or its
-        // declared with a redundant initializer, which will be removed. Either
-        // way the string will be default initialized, therefore we can remove
-        // the constructor initializer entirely.
-        diag(CtorInit->getMemberLocation(), "redundant string initialization")
-            << FixItHint::CreateRemoval(CtorInit->getSourceRange());
-        return;
-      }
+    if (const FieldDecl *Member = CtorInit->getMember();
+        Member && (!Member->hasInClassInitializer() ||
+                   Result.Nodes.getNodeAs<Expr>("empty_init"))) {
+      // The String isn't declared in the class with an initializer or its
+      // declared with a redundant initializer, which will be removed. Either
+      // way the string will be default initialized, therefore we can remove
+      // the constructor initializer entirely.
+      diag(CtorInit->getMemberLocation(), "redundant string initialization")
+          << FixItHint::CreateRemoval(CtorInit->getSourceRange());
+      return;
     }
+
     const CXXConstructExpr *Construct = getConstructExpr(*CtorInit);
     if (!Construct)
       return;

diff  --git 
a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
index cc82e052d58da..3a63b6f84eed3 100644
--- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
@@ -116,17 +116,15 @@ static bool needsZeroComparison(const Expr *E) {
 }
 
 static bool needsStaticCast(const Expr *E) {
-  if (const auto *ImpCast = dyn_cast<ImplicitCastExpr>(E)) {
-    if (ImpCast->getCastKind() == CK_UserDefinedConversion &&
-        ImpCast->getSubExpr()->getType()->isBooleanType()) {
-      if (const auto *MemCall =
-              dyn_cast<CXXMemberCallExpr>(ImpCast->getSubExpr())) {
-        if (const auto *MemDecl =
-                dyn_cast<CXXConversionDecl>(MemCall->getMethodDecl())) {
-          if (MemDecl->isExplicit())
-            return true;
-        }
-      }
+  if (const auto *ImpCast = dyn_cast<ImplicitCastExpr>(E);
+      ImpCast && ImpCast->getCastKind() == CK_UserDefinedConversion &&
+      ImpCast->getSubExpr()->getType()->isBooleanType()) {
+    if (const auto *MemCall =
+            dyn_cast<CXXMemberCallExpr>(ImpCast->getSubExpr())) {
+      if (const auto *MemDecl =
+              dyn_cast<CXXConversionDecl>(MemCall->getMethodDecl());
+          MemDecl && MemDecl->isExplicit())
+        return true;
     }
   }
 
@@ -165,16 +163,15 @@ static std::string replacementExpression(const ASTContext 
&Context,
   const bool NeedsStaticCast =
       Context.getLangOpts().CPlusPlus && needsStaticCast(E);
   if (Negated) {
-    if (const auto *UnOp = dyn_cast<UnaryOperator>(E)) {
-      if (UnOp->getOpcode() == UO_LNot) {
-        if (needsNullPtrComparison(UnOp->getSubExpr()))
-          return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), true);
+    if (const auto *UnOp = dyn_cast<UnaryOperator>(E);
+        UnOp && UnOp->getOpcode() == UO_LNot) {
+      if (needsNullPtrComparison(UnOp->getSubExpr()))
+        return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), true);
 
-        if (needsZeroComparison(UnOp->getSubExpr()))
-          return compareExpressionToZero(Context, UnOp->getSubExpr(), true);
+      if (needsZeroComparison(UnOp->getSubExpr()))
+        return compareExpressionToZero(Context, UnOp->getSubExpr(), true);
 
-        return replacementExpression(Context, false, UnOp->getSubExpr());
-      }
+      return replacementExpression(Context, false, UnOp->getSubExpr());
     }
 
     if (needsNullPtrComparison(E))
@@ -190,13 +187,13 @@ static std::string replacementExpression(const ASTContext 
&Context,
       NegatedOperator = negatedOperator(BinOp);
       LHS = BinOp->getLHS();
       RHS = BinOp->getRHS();
-    } else if (const auto *OpExpr = dyn_cast<CXXOperatorCallExpr>(E)) {
-      if (OpExpr->getNumArgs() == 2) {
-        NegatedOperator = negatedOperator(OpExpr);
-        LHS = OpExpr->getArg(0);
-        RHS = OpExpr->getArg(1);
-      }
+    } else if (const auto *OpExpr = dyn_cast<CXXOperatorCallExpr>(E);
+               OpExpr && OpExpr->getNumArgs() == 2) {
+      NegatedOperator = negatedOperator(OpExpr);
+      LHS = OpExpr->getArg(0);
+      RHS = OpExpr->getArg(1);
     }
+
     if (!NegatedOperator.empty() && LHS && RHS)
       return (asBool((getText(Context, *LHS) + " " + NegatedOperator + " " +
                       getText(Context, *RHS))
@@ -216,14 +213,13 @@ static std::string replacementExpression(const ASTContext 
&Context,
     return ("!" + asBool(Text, NeedsStaticCast));
   }
 
-  if (const auto *UnOp = dyn_cast<UnaryOperator>(E)) {
-    if (UnOp->getOpcode() == UO_LNot) {
-      if (needsNullPtrComparison(UnOp->getSubExpr()))
-        return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), false);
+  if (const auto *UnOp = dyn_cast<UnaryOperator>(E);
+      UnOp && UnOp->getOpcode() == UO_LNot) {
+    if (needsNullPtrComparison(UnOp->getSubExpr()))
+      return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), false);
 
-      if (needsZeroComparison(UnOp->getSubExpr()))
-        return compareExpressionToZero(Context, UnOp->getSubExpr(), false);
-    }
+    if (needsZeroComparison(UnOp->getSubExpr()))
+      return compareExpressionToZero(Context, UnOp->getSubExpr(), false);
   }
 
   if (needsNullPtrComparison(E))
@@ -421,12 +417,11 @@ class SimplifyBooleanExprCheck::Visitor : public 
RecursiveASTVisitor<Visitor> {
           const DeclAndBool ElseAssignment =
               checkSingleStatement(If->getElse(), VarBoolAssignmentMatcher);
           if (ElseAssignment.Item == ThenAssignment.Item &&
-              ElseAssignment.Bool != ThenAssignment.Bool) {
-            if (Check->ChainedConditionalAssignment ||
-                !isa_and_nonnull<IfStmt>(parent())) {
-              Check->replaceWithAssignment(Context, If, Var, Loc,
-                                           ElseAssignment.Bool);
-            }
+              ElseAssignment.Bool != ThenAssignment.Bool &&
+              (Check->ChainedConditionalAssignment ||
+               !isa_and_nonnull<IfStmt>(parent()))) {
+            Check->replaceWithAssignment(Context, If, Var, Loc,
+                                         ElseAssignment.Bool);
           }
         }
       }
@@ -563,19 +558,20 @@ class SimplifyBooleanExprCheck::Visitor : public 
RecursiveASTVisitor<Visitor> {
     if (!isExpectedBinaryOp(SubExpr))
       return Base::TraverseUnaryOperator(Op);
     const auto *BinaryOp = cast<BinaryOperator>(SubExpr);
-    if (Check->SimplifyDeMorganRelaxed ||
-        checkEitherSide(
-            BinaryOp,
-            [this](const Expr *E) { return isExpectedUnaryLNot(E); }) ||
-        checkEitherSide(
-            BinaryOp, [this](const Expr *E) { return nestedDemorgan(E, 1); })) 
{
-      if (Check->reportDeMorgan(Context, Op, BinaryOp, !IsProcessing, parent(),
-                                Parens) &&
-          !Check->areDiagsSelfContained()) {
-        const llvm::SaveAndRestore RAII(IsProcessing, true);
-        return Base::TraverseUnaryOperator(Op);
-      }
+    if ((Check->SimplifyDeMorganRelaxed ||
+         checkEitherSide(
+             BinaryOp,
+             [this](const Expr *E) { return isExpectedUnaryLNot(E); }) ||
+         checkEitherSide(
+             BinaryOp,
+             [this](const Expr *E) { return nestedDemorgan(E, 1); })) &&
+        Check->reportDeMorgan(Context, Op, BinaryOp, !IsProcessing, parent(),
+                              Parens) &&
+        !Check->areDiagsSelfContained()) {
+      const llvm::SaveAndRestore RAII(IsProcessing, true);
+      return Base::TraverseUnaryOperator(Op);
     }
+
     return Base::TraverseUnaryOperator(Op);
   }
 
@@ -851,13 +847,12 @@ flipDemorganBinaryOperator(SmallVectorImpl<FixItHint> 
&Fixes,
       constexpr bool LogicalOpParentheses = true;
       if (((*OuterBO == NewOp) || (!LogicalOpParentheses &&
                                    (*OuterBO == BO_LOr && NewOp == BO_LAnd))) 
&&
-          Parens) {
-        if (!Parens->getLParen().isMacroID() &&
-            !Parens->getRParen().isMacroID()) {
-          Fixes.push_back(FixItHint::CreateRemoval(Parens->getLParen()));
-          Fixes.push_back(FixItHint::CreateRemoval(Parens->getRParen()));
-        }
+          Parens && !Parens->getLParen().isMacroID() &&
+          !Parens->getRParen().isMacroID()) {
+        Fixes.push_back(FixItHint::CreateRemoval(Parens->getLParen()));
+        Fixes.push_back(FixItHint::CreateRemoval(Parens->getRParen()));
       }
+
       if (*OuterBO == BO_LAnd && NewOp == BO_LOr && !Parens) {
         Fixes.push_back(FixItHint::CreateInsertion(BinOp->getBeginLoc(), "("));
         Fixes.push_back(FixItHint::CreateInsertion(

diff  --git 
a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp 
b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
index 854bd1dae9e30..49c327ad77177 100644
--- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
@@ -726,12 +726,11 @@ void SuspiciousCallArgumentCheck::setArgNamesAndTypes(
         ArgNames.push_back(Var->getName());
         continue;
       }
-      if (const auto *FCall = dyn_cast<FunctionDecl>(ArgExpr->getDecl())) {
-        if (FCall->getNameInfo().getName().isIdentifier()) {
-          ArgTypes.push_back(FCall->getType());
-          ArgNames.push_back(FCall->getName());
-          continue;
-        }
+      if (const auto *FCall = dyn_cast<FunctionDecl>(ArgExpr->getDecl());
+          FCall && FCall->getNameInfo().getName().isIdentifier()) {
+        ArgTypes.push_back(FCall->getType());
+        ArgNames.push_back(FCall->getName());
+        continue;
       }
     }
 

diff  --git a/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp 
b/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
index 4baef7539008a..f73cc270678c9 100644
--- a/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
+++ b/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
@@ -49,12 +49,12 @@ bool exprHasBitFlagWithSpelling(const Expr *Flags, const 
SourceManager &SM,
     return MacroName == FlagName;
   }
   // If it's a binary OR operation.
-  if (const auto *BO = dyn_cast<BinaryOperator>(Flags))
-    if (BO->getOpcode() == BinaryOperatorKind::BO_Or)
-      return exprHasBitFlagWithSpelling(BO->getLHS()->IgnoreParenCasts(), SM,
-                                        LangOpts, FlagName) ||
-             exprHasBitFlagWithSpelling(BO->getRHS()->IgnoreParenCasts(), SM,
-                                        LangOpts, FlagName);
+  if (const auto *BO = dyn_cast<BinaryOperator>(Flags);
+      BO && BO->getOpcode() == BinaryOperatorKind::BO_Or)
+    return exprHasBitFlagWithSpelling(BO->getLHS()->IgnoreParenCasts(), SM,
+                                      LangOpts, FlagName) ||
+           exprHasBitFlagWithSpelling(BO->getRHS()->IgnoreParenCasts(), SM,
+                                      LangOpts, FlagName);
 
   // Otherwise, assume it has the flag.
   return true;
@@ -97,13 +97,12 @@ bool areStatementsIdentical(const Stmt *FirstStmt, const 
Stmt *SecondStmt,
   if (FirstStmt->getStmtClass() != SecondStmt->getStmtClass())
     return false;
 
-  if (isa<Expr>(FirstStmt) && isa<Expr>(SecondStmt)) {
+  if (isa<Expr>(FirstStmt) && isa<Expr>(SecondStmt) &&
+      (cast<Expr>(FirstStmt)->containsErrors() ||
+       cast<Expr>(SecondStmt)->containsErrors()))
     // If we have errors in expressions, we will be unable
     // to accurately profile and compute hashes for each statements.
-    if (cast<Expr>(FirstStmt)->containsErrors() ||
-        cast<Expr>(SecondStmt)->containsErrors())
-      return false;
-  }
+    return false;
 
   llvm::FoldingSetNodeID DataFirst, DataSecond;
   FirstStmt->Profile(DataFirst, Context, Canonical);

diff  --git a/clang-tools-extra/clang-tidy/utils/Aliasing.cpp 
b/clang-tools-extra/clang-tidy/utils/Aliasing.cpp
index 8b64cfe2c9224..848a8ce1f803d 100644
--- a/clang-tools-extra/clang-tidy/utils/Aliasing.cpp
+++ b/clang-tools-extra/clang-tidy/utils/Aliasing.cpp
@@ -35,12 +35,11 @@ static bool isPtrOrReferenceForVar(const Stmt *S, const 
ValueDecl *Var) {
     return true;
 
   if (const auto *DS = dyn_cast<DeclStmt>(S)) {
-    for (const Decl *D : DS->getDeclGroup()) {
-      if (const auto *LeftVar = dyn_cast<VarDecl>(D)) {
-        if (LeftVar->hasInit() && LeftVar->getType()->isReferenceType())
-          return isAccessForVar(LeftVar->getInit(), Var);
-      }
-    }
+    for (const Decl *D : DS->getDeclGroup())
+      if (const auto *LeftVar = dyn_cast<VarDecl>(D);
+          LeftVar && LeftVar->hasInit() &&
+          LeftVar->getType()->isReferenceType())
+        return isAccessForVar(LeftVar->getInit(), Var);
   } else if (const auto *UnOp = dyn_cast<UnaryOperator>(S)) {
     if (UnOp->getOpcode() == UO_AddrOf)
       return isAccessForVar(UnOp->getSubExpr(), Var);

diff  --git a/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp 
b/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
index 13781ada37557..7decd18dd25b9 100644
--- a/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
+++ b/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
@@ -135,15 +135,14 @@ static bool isStandardPointerConvertible(QualType From, 
QualType To) {
   // be converted to a prvalue of type “pointer to cv B”, where B is a base
   // class of D. If B is an inaccessible or ambiguous base class of D, a 
program
   // that necessitates this conversion is ill-formed.
-  if (const auto *RD = From->getPointeeCXXRecordDecl()) {
-    if (RD->isCompleteDefinition() &&
-        isBaseOf(From->getPointeeType().getTypePtr(),
-                 To->getPointeeType().getTypePtr())) {
-      // If B is an inaccessible or ambiguous base class of D, a program
-      // that necessitates this conversion is ill-formed
-      return isUnambiguousPublicBaseClass(From->getPointeeType().getTypePtr(),
-                                          To->getPointeeType().getTypePtr());
-    }
+  if (const auto *RD = From->getPointeeCXXRecordDecl();
+      RD && RD->isCompleteDefinition() &&
+      isBaseOf(From->getPointeeType().getTypePtr(),
+               To->getPointeeType().getTypePtr())) {
+    // If B is an inaccessible or ambiguous base class of D, a program
+    // that necessitates this conversion is ill-formed
+    return isUnambiguousPublicBaseClass(From->getPointeeType().getTypePtr(),
+                                        To->getPointeeType().getTypePtr());
   }
 
   return false;
@@ -255,10 +254,8 @@ static bool isQualificationConvertiblePointer(QualType 
From, QualType To,
   bool ConstUntilI = true;
   const auto SatisfiesCVRules = [&I, &ConstUntilI](const QualType &From,
                                                    const QualType &To) {
-    if (I > 1) {
-      if (From.getQualifiers() != To.getQualifiers() && !ConstUntilI)
-        return false;
-    }
+    if (I > 1 && From.getQualifiers() != To.getQualifiers() && !ConstUntilI)
+      return false;
 
     if (I > 0) {
       if (From.isConstQualified() && !To.isConstQualified())
@@ -439,14 +436,12 @@ ExceptionAnalyzer::ExceptionInfo::filterIgnoredExceptions(
     const Type *T = ThrownException.getFirst();
     if (!T)
       continue;
-    if (const auto *TD = T->getAsTagDecl()) {
-      if (TD->getDeclName().isIdentifier()) {
-        if ((IgnoreBadAlloc &&
-             (TD->getName() == "bad_alloc" && TD->isInStdNamespace())) ||
-            IgnoredTypes.contains(TD->getName()))
-          TypesToDelete.push_back(T);
-      }
-    }
+    if (const auto *TD = T->getAsTagDecl();
+        TD && TD->getDeclName().isIdentifier() &&
+        ((IgnoreBadAlloc &&
+          (TD->getName() == "bad_alloc" && TD->isInStdNamespace())) ||
+         IgnoredTypes.contains(TD->getName())))
+      TypesToDelete.push_back(T);
   }
   for (const Type *T : TypesToDelete)
     ThrownExceptions.erase(T);

diff  --git a/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp 
b/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
index e75782ed6795a..dd98147441d31 100644
--- a/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
+++ b/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
@@ -235,12 +235,13 @@ const Stmt *ExprSequence::getSequenceSuccessor(const Stmt 
*S) const {
       }
       if (S == TheSwitchStmt->getConditionVariableDeclStmt())
         return TheSwitchStmt->getCond();
-    } else if (const auto *TheWhileStmt = dyn_cast<WhileStmt>(Parent)) {
+    } else if (const auto *TheWhileStmt = dyn_cast<WhileStmt>(Parent);
+               TheWhileStmt &&
+               S == TheWhileStmt->getConditionVariableDeclStmt()) {
       // While statement: Sequence variable declaration (along with the
       // expression used to initialize it) before the evaluation of the
       // condition.
-      if (S == TheWhileStmt->getConditionVariableDeclStmt())
-        return TheWhileStmt->getCond();
+      return TheWhileStmt->getCond();
     }
   }
 

diff  --git a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp 
b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
index e013742fe6901..e774ce67c4f56 100644
--- a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
+++ b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
@@ -280,13 +280,13 @@ static bool needParensAfterUnaryOperator(const Expr 
&ExprNode) {
 // Format a pointer to an expression: prefix with '*' but simplify
 // when it already begins with '&'.  Return empty string on failure.
 std::string formatDereference(const Expr &ExprNode, const ASTContext &Context) 
{
-  if (const auto *Op = dyn_cast<UnaryOperator>(&ExprNode)) {
-    if (Op->getOpcode() == UO_AddrOf) {
-      // Strip leading '&'.
-      return std::string(
-          tooling::fixit::getText(*Op->getSubExpr()->IgnoreParens(), Context));
-    }
+  if (const auto *Op = dyn_cast<UnaryOperator>(&ExprNode);
+      Op && Op->getOpcode() == UO_AddrOf) {
+    // Strip leading '&'.
+    return std::string(
+        tooling::fixit::getText(*Op->getSubExpr()->IgnoreParens(), Context));
   }
+
   StringRef Text = tooling::fixit::getText(ExprNode, Context);
 
   if (Text.empty())

diff  --git a/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp 
b/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
index f87a393f071f3..b7c313693781d 100644
--- a/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
+++ b/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
@@ -82,18 +82,16 @@ determineIncludeKind(StringRef CanonicalFile, StringRef 
IncludeFile,
         CanonicalInclude.split("/public/");
     StringRef FileCopy = CanonicalFile;
     if (FileCopy.consume_front(Parts.first) &&
-        FileCopy.consume_back(Parts.second)) {
-      // Determine the kind of this inclusion.
-      if (FileCopy == "/internal/" || FileCopy == "/proto/")
-        return IncludeSorter::IK_MainTUInclude;
-    }
+        FileCopy.consume_back(Parts.second) &&
+        // Determine the kind of this inclusion.
+        (FileCopy == "/internal/" || FileCopy == "/proto/"))
+      return IncludeSorter::IK_MainTUInclude;
   }
-  if (Style == IncludeSorter::IS_Google_ObjC) {
-    if (IncludeFile.ends_with(".generated.h") ||
-        IncludeFile.ends_with(".proto.h") ||
-        IncludeFile.ends_with(".pbobjc.h")) {
-      return IncludeSorter::IK_GeneratedInclude;
-    }
+  if (Style == IncludeSorter::IS_Google_ObjC &&
+      (IncludeFile.ends_with(".generated.h") ||
+       IncludeFile.ends_with(".proto.h") ||
+       IncludeFile.ends_with(".pbobjc.h"))) {
+    return IncludeSorter::IK_GeneratedInclude;
   }
   return IncludeSorter::IK_NonSystemInclude;
 }

diff  --git a/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp 
b/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
index 8aa47e452cc61..8bee629614346 100644
--- a/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
+++ b/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
@@ -83,10 +83,10 @@ std::string NamespaceAliaser::getNamespaceName(ASTContext 
&Context,
                                                StringRef Namespace) const {
   const auto *Function = getSurroundingFunction(Context, Statement);
   const auto FunctionAliases = AddedAliases.find(Function);
-  if (FunctionAliases != AddedAliases.end()) {
-    if (FunctionAliases->second.contains(Namespace))
-      return FunctionAliases->second.find(Namespace)->getValue();
-  }
+  if (FunctionAliases != AddedAliases.end() &&
+      FunctionAliases->second.contains(Namespace))
+    return FunctionAliases->second.find(Namespace)->getValue();
+
   return Namespace.str();
 }
 

diff  --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp 
b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
index d0a6e9af4fab6..943c21a14c6d9 100644
--- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
+++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
@@ -69,12 +69,10 @@ class NameLookup {
 
 static const NamedDecl *findDecl(const RecordDecl &RecDecl,
                                  StringRef DeclName) {
-  for (const Decl *D : RecDecl.decls()) {
-    if (const auto *ND = dyn_cast<NamedDecl>(D)) {
-      if (ND->getDeclName().isIdentifier() && ND->getName() == DeclName)
-        return ND;
-    }
-  }
+  for (const Decl *D : RecDecl.decls())
+    if (const auto *ND = dyn_cast<NamedDecl>(D);
+        ND && ND->getDeclName().isIdentifier() && ND->getName() == DeclName)
+      return ND;
   return nullptr;
 }
 


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to