https://github.com/vbvictor created 
https://github.com/llvm/llvm-project/pull/213939

None

>From c4629c16946679b9ad3932d62042033f05a3f931 Mon Sep 17 00:00:00 2001
From: Victor Baranov <[email protected]>
Date: Tue, 4 Aug 2026 16:28:35 +0300
Subject: [PATCH] [clang-tidy][NFC] Apply readability-redundant-nested-if 1/N

---
 .../clang-tidy/altera/UnrollLoopsCheck.cpp    |  6 +-
 .../ComparisonInTempFailureRetryCheck.cpp     | 11 ++--
 .../bugprone/ArgumentCommentCheck.cpp         | 33 ++++++-----
 .../bugprone/AssertSideEffectCheck.cpp        |  6 +-
 .../bugprone/ChainedComparisonCheck.cpp       |  7 +--
 .../EasilySwappableParametersCheck.cpp        | 21 ++++---
 .../ForwardingReferenceOverloadCheck.cpp      |  6 +-
 .../clang-tidy/bugprone/InfiniteLoopCheck.cpp | 12 ++--
 .../InvalidEnumDefaultInitializationCheck.cpp |  8 +--
 .../bugprone/MissingEndComparisonCheck.cpp    |  8 +--
 .../bugprone/NotNullTerminatedResultCheck.cpp | 57 +++++++++----------
 .../ReturnConstRefFromParameterCheck.cpp      |  6 +-
 .../bugprone/SizeofExpressionCheck.cpp        | 17 +++---
 .../SuspiciousMemoryComparisonCheck.cpp       | 15 +++--
 .../bugprone/SuspiciousMissingCommaCheck.cpp  |  7 +--
 .../bugprone/SuspiciousReallocUsageCheck.cpp  | 13 +++--
 .../bugprone/SwappedArgumentsCheck.cpp        |  8 +--
 .../clang-tidy/bugprone/UseAfterMoveCheck.cpp |  7 +--
 .../bugprone/VirtualNearMissCheck.cpp         | 33 ++++++-----
 .../PreferMemberInitializerCheck.cpp          |  9 ++-
 20 files changed, 139 insertions(+), 151 deletions(-)

diff --git a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp 
b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
index 62fc3b159241d..e892fc0ba70c1 100644
--- a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
@@ -134,9 +134,9 @@ bool UnrollLoopsCheck::hasKnownBounds(const Stmt *Statement,
     }
   }
   // If increment is unary and not one of ++ and --, loop bounds are unknown.
-  if (const auto *Op = dyn_cast<UnaryOperator>(Increment))
-    if (!Op->isIncrementDecrementOp())
-      return false;
+  if (const auto *Op = dyn_cast<UnaryOperator>(Increment);
+      Op && !Op->isIncrementDecrementOp())
+    return false;
 
   if (const auto *BinaryOp = dyn_cast<BinaryOperator>(Conditional)) {
     const Expr *LHS = BinaryOp->getLHS();
diff --git 
a/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp 
b/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp
index ba399efa4a8a6..397d6f8e87e83 100644
--- a/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp
+++ b/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp
@@ -67,12 +67,11 @@ void ComparisonInTempFailureRetryCheck::check(
     const SourceLocation Invocation = SM.getImmediateMacroCallerLoc(LocStart);
     Token Tok;
     if (!Lexer::getRawToken(SM.getSpellingLoc(Invocation), Tok, SM, Opts,
-                            /*IgnoreWhiteSpace=*/true)) {
-      if (Tok.getKind() == tok::raw_identifier &&
-          llvm::is_contained(RetryMacros, Tok.getRawIdentifier())) {
-        RetryMacroName = Tok.getRawIdentifier();
-        break;
-      }
+                            /*IgnoreWhiteSpace=*/true) &&
+        Tok.getKind() == tok::raw_identifier &&
+        llvm::is_contained(RetryMacros, Tok.getRawIdentifier())) {
+      RetryMacroName = Tok.getRawIdentifier();
+      break;
     }
 
     LocStart = Invocation;
diff --git a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
index 8b78b5a50f0c8..28a1b332df8df 100644
--- a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
@@ -21,9 +21,9 @@ namespace clang::tidy::bugprone {
 using utils::lexer::CommentToken;
 namespace {
 AST_MATCHER(Decl, isFromStdNamespaceOrSystemHeader) {
-  if (const auto *D = Node.getDeclContext()->getEnclosingNamespaceContext())
-    if (D->isStdNamespace())
-      return true;
+  if (const auto *D = Node.getDeclContext()->getEnclosingNamespaceContext();
+      D && D->isStdNamespace())
+    return true;
   if (Node.getLocation().isInvalid())
     return false;
   return Node.getASTContext().getSourceManager().isInSystemHeader(
@@ -184,10 +184,11 @@ static const CXXMethodDecl *findMockedMethod(const 
CXXMethodDecl *Method) {
     return nullptr;
   }
   if (const auto *Next =
-          dyn_cast_or_null<CXXMethodDecl>(Method->getNextDeclInContext())) {
-    if (looksLikeExpectMethod(Next) && areMockAndExpectMethods(Method, Next))
-      return Method;
-  }
+          dyn_cast_or_null<CXXMethodDecl>(Method->getNextDeclInContext());
+      Next && looksLikeExpectMethod(Next) &&
+      areMockAndExpectMethods(Method, Next))
+    return Method;
+
   return nullptr;
 }
 
@@ -325,16 +326,14 @@ void ArgumentCommentCheck::checkCallArgs(ASTContext *Ctx,
     const IdentifierInfo *II = PVD->getIdentifier();
     if (!II)
       continue;
-    if (FunctionDecl *Template = Callee->getTemplateInstantiationPattern()) {
-      // Don't warn on arguments for parameters instantiated from template
-      // parameter packs. If we find more arguments than the template
-      // definition has, it also means that they correspond to a parameter
-      // pack.
-      if (Template->getNumParams() <= I ||
-          Template->getParamDecl(I)->isParameterPack()) {
-        continue;
-      }
-    }
+    // Don't warn on arguments for parameters instantiated from template
+    // parameter packs. If we find more arguments than the template
+    // definition has, it also means that they correspond to a parameter
+    // pack.
+    if (FunctionDecl *Template = Callee->getTemplateInstantiationPattern();
+        Template && (Template->getNumParams() <= I ||
+                     Template->getParamDecl(I)->isParameterPack()))
+      continue;
 
     const CharSourceRange BeforeArgument =
         MakeFileCharRange(ArgBeginLoc, Args[I]->getBeginLoc());
diff --git a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
index 574ccfc255a53..26f326c99c9d6 100644
--- a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
@@ -39,9 +39,9 @@ AST_MATCHER_P2(Expr, hasSideEffect, bool, CheckFunctionCalls,
 
   if (const auto *OpCallExpr = dyn_cast<CXXOperatorCallExpr>(E)) {
     if (const auto *MethodDecl =
-            dyn_cast_or_null<CXXMethodDecl>(OpCallExpr->getDirectCallee()))
-      if (MethodDecl->isConst())
-        return false;
+            dyn_cast_or_null<CXXMethodDecl>(OpCallExpr->getDirectCallee());
+        MethodDecl && MethodDecl->isConst())
+      return false;
 
     const OverloadedOperatorKind OpKind = OpCallExpr->getOperator();
     return OpKind == OO_Equal || OpKind == OO_PlusEqual ||
diff --git a/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
index 1c70fb482aa2d..5df9aaf9fff22 100644
--- a/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
@@ -106,10 +106,9 @@ void ChainedComparisonData::extract(const Expr *Op) {
     return;
   }
 
-  if (const auto *OverloadedOp = dyn_cast<CXXOperatorCallExpr>(Op)) {
-    if (OverloadedOp->getNumArgs() == 2U)
-      extract(OverloadedOp);
-  }
+  if (const auto *OverloadedOp = dyn_cast<CXXOperatorCallExpr>(Op);
+      OverloadedOp && OverloadedOp->getNumArgs() == 2U)
+    extract(OverloadedOp);
 }
 
 ChainedComparisonCheck::ChainedComparisonCheck(StringRef Name,
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
index e95af89375dc8..10aa88dc302c1 100644
--- a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
@@ -1563,14 +1563,13 @@ static bool isIgnoredParameter(const TheCheck &Check, 
const ParmVarDecl *Node) {
   }();
 
   LLVM_DEBUG(llvm::dbgs() << "\tType name is '" << NodeTypeName << "'\n");
-  if (!NodeTypeName.empty()) {
-    if (llvm::any_of(Check.IgnoredParameterTypeSuffixes,
-                     [NodeTypeName](StringRef E) {
-                       return !E.empty() && NodeTypeName.ends_with(E);
-                     })) {
-      LLVM_DEBUG(llvm::dbgs() << "\tType suffix ignored.\n");
-      return true;
-    }
+  if (!NodeTypeName.empty() && llvm::any_of(Check.IgnoredParameterTypeSuffixes,
+                                            [NodeTypeName](StringRef E) {
+                                              return !E.empty() &&
+                                                     NodeTypeName.ends_with(E);
+                                            })) {
+    LLVM_DEBUG(llvm::dbgs() << "\tType suffix ignored.\n");
+    return true;
   }
 
   return false;
@@ -1661,9 +1660,9 @@ class AppearsInSameExpr : public 
RecursiveASTVisitor<AppearsInSameExpr> {
     if (!CurrentExprOnlyTreeRoot)
       return true;
 
-    if (auto *PVD = dyn_cast<ParmVarDecl>(DRE->getDecl()))
-      if (llvm::find(FD->parameters(), PVD))
-        ParentExprsForParamRefs[PVD].insert(CurrentExprOnlyTreeRoot);
+    if (auto *PVD = dyn_cast<ParmVarDecl>(DRE->getDecl());
+        PVD && llvm::find(FD->parameters(), PVD))
+      ParentExprsForParamRefs[PVD].insert(CurrentExprOnlyTreeRoot);
 
     return true;
   }
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
index 8d4d9d67f17f4..41549155d699f 100644
--- a/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
@@ -40,9 +40,9 @@ AST_MATCHER(QualType, isEnableIf) {
     return true; // Case: enable_if_t< >.
   if (const auto *TT = BaseType->getAs<TypedefType>())
     if (const NestedNameSpecifier Q = TT->getQualifier();
-        Q.getKind() == NestedNameSpecifier::Kind::Type)
-      if (CheckTemplate(Q.getAsType()->getAs<TemplateSpecializationType>()))
-        return true; // Case: enable_if< >::type.
+        Q.getKind() == NestedNameSpecifier::Kind::Type &&
+        CheckTemplate(Q.getAsType()->getAs<TemplateSpecializationType>()))
+      return true; // Case: enable_if< >::type.
   return false;
 }
 AST_MATCHER_P(TemplateTypeParmDecl, hasDefaultArgument,
diff --git a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
index 072e80e20b0c5..edc3b0b75f0f4 100644
--- a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
@@ -225,14 +225,14 @@ static bool overlap(ArrayRef<CallGraphNode *> SCC,
 /// returns true iff `Cond` involves at least one static local variable.
 static bool hasStaticLocalVariable(const Stmt *Cond) {
   if (const auto *DRE = dyn_cast<DeclRefExpr>(Cond)) {
-    if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl()))
-      if (VD->isStaticLocal())
-        return true;
+    if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl());
+        VD && VD->isStaticLocal())
+      return true;
 
     if (const auto *BD = dyn_cast<BindingDecl>(DRE->getDecl()))
-      if (const auto *DD = 
dyn_cast<DecompositionDecl>(BD->getDecomposedDecl()))
-        if (DD->isStaticLocal())
-          return true;
+      if (const auto *DD = 
dyn_cast<DecompositionDecl>(BD->getDecomposedDecl());
+          DD && DD->isStaticLocal())
+        return true;
   }
 
   return llvm::any_of(Cond->children(), [](const Stmt *Child) {
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp
 
b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp
index 65efb9adff3ac..551918103de1e 100644
--- 
a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp
+++ 
b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp
@@ -41,10 +41,10 @@ AST_MATCHER(EnumDecl, isCompleteAndHasNoZeroValue) {
 AST_MATCHER(Expr, isEmptyInit) {
   if (isa<CXXScalarValueInitExpr, ImplicitValueInitExpr>(&Node))
     return true;
-  if (const auto *Init = dyn_cast<InitListExpr>(&Node)) {
-    if (Init->getNumInits() == 0)
-      return true;
-  }
+  if (const auto *Init = dyn_cast<InitListExpr>(&Node);
+      Init && Init->getNumInits() == 0)
+    return true;
+
   return false;
 }
 
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp
index c8679e45b299a..568a305ad6273 100644
--- a/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp
@@ -101,10 +101,10 @@ static std::optional<std::string> 
getStandardEndText(ASTContext &Context,
   unsigned EndIdx = 1;
   const Expr *FirstArg = Call->getArg(0);
   if (const auto *Record =
-          FirstArg->getType().getNonReferenceType()->getAsCXXRecordDecl()) {
-    if (Record->getIdentifier() && Record->getName().ends_with("_policy"))
-      EndIdx = 2;
-  }
+          FirstArg->getType().getNonReferenceType()->getAsCXXRecordDecl();
+      Record && Record->getIdentifier() &&
+      Record->getName().ends_with("_policy"))
+    EndIdx = 2;
 
   if (Call->getNumArgs() <= EndIdx)
     return std::nullopt;
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
index 8359a393917e5..9f99a5afcd501 100644
--- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
@@ -67,14 +67,14 @@ static unsigned getLength(const Expr *E,
   E = E->IgnoreImpCasts();
 
   if (const auto *LengthDRE = dyn_cast<DeclRefExpr>(E))
-    if (const auto *LengthVD = dyn_cast<VarDecl>(LengthDRE->getDecl()))
-      if (!isa<ParmVarDecl>(LengthVD))
-        if (const Expr *LengthInit = LengthVD->getInit();
-            LengthInit && !LengthInit->isValueDependent()) {
-          Expr::EvalResult Length;
-          if (LengthInit->EvaluateAsInt(Length, *Result.Context))
-            return Length.Val.getInt().getZExtValue();
-        }
+    if (const auto *LengthVD = dyn_cast<VarDecl>(LengthDRE->getDecl());
+        LengthVD && !isa<ParmVarDecl>(LengthVD))
+      if (const Expr *LengthInit = LengthVD->getInit();
+          LengthInit && !LengthInit->isValueDependent()) {
+        Expr::EvalResult Length;
+        if (LengthInit->EvaluateAsInt(Length, *Result.Context))
+          return Length.Val.getInt().getZExtValue();
+      }
 
   if (const auto *LengthIL = dyn_cast<IntegerLiteral>(E))
     return LengthIL->getValue().getZExtValue();
@@ -107,9 +107,9 @@ static const CallExpr *getStrlenExpr(const 
MatchFinder::MatchResult &Result) {
           Result.Nodes.getNodeAs<CallExpr>(WrongLengthExprName))
     if (const Decl *D = StrlenExpr->getCalleeDecl())
       if (const FunctionDecl *FD = D->getAsFunction())
-        if (const IdentifierInfo *II = FD->getIdentifier())
-          if (II->isStr("strlen") || II->isStr("wcslen"))
-            return StrlenExpr;
+        if (const IdentifierInfo *II = FD->getIdentifier();
+            II && (II->isStr("strlen") || II->isStr("wcslen")))
+          return StrlenExpr;
 
   return nullptr;
 }
@@ -233,9 +233,9 @@ isGivenLengthEqualToSrcLength(const 
MatchFinder::MatchResult &Result) {
   if (GivenLength != 0 && SrcLength != 0 && GivenLength == SrcLength)
     return true;
 
-  if (const auto *LengthExpr = Result.Nodes.getNodeAs<Expr>(LengthExprName))
-    if (isa<BinaryOperator>(LengthExpr->IgnoreParenImpCasts()))
-      return false;
+  if (const auto *LengthExpr = Result.Nodes.getNodeAs<Expr>(LengthExprName);
+      LengthExpr && isa<BinaryOperator>(LengthExpr->IgnoreParenImpCasts()))
+    return false;
 
   // Check the strlen()'s argument's 'VarDecl' is equal to the source 
'VarDecl'.
   if (const CallExpr *StrlenCE = getStrlenExpr(Result))
@@ -324,21 +324,18 @@ static void lengthExprHandle(const Expr *LengthExpr,
     const Expr *LhsExpr = BO->getLHS()->IgnoreImpCasts();
     const Expr *RhsExpr = BO->getRHS()->IgnoreImpCasts();
 
-    if (const auto *LhsIL = dyn_cast<IntegerLiteral>(LhsExpr)) {
-      if (LhsIL->getValue().getZExtValue() == 1) {
-        Diag << FixItHint::CreateRemoval(
-            {LhsIL->getBeginLoc(),
-             RhsExpr->getBeginLoc().getLocWithOffset(-1)});
-        return;
-      }
+    if (const auto *LhsIL = dyn_cast<IntegerLiteral>(LhsExpr);
+        LhsIL && LhsIL->getValue().getZExtValue() == 1) {
+      Diag << FixItHint::CreateRemoval(
+          {LhsIL->getBeginLoc(), RhsExpr->getBeginLoc().getLocWithOffset(-1)});
+      return;
     }
 
-    if (const auto *RhsIL = dyn_cast<IntegerLiteral>(RhsExpr)) {
-      if (RhsIL->getValue().getZExtValue() == 1) {
-        Diag << FixItHint::CreateRemoval(
-            {LhsExpr->getEndLoc().getLocWithOffset(1), RhsIL->getEndLoc()});
-        return;
-      }
+    if (const auto *RhsIL = dyn_cast<IntegerLiteral>(RhsExpr);
+        RhsIL && RhsIL->getValue().getZExtValue() == 1) {
+      Diag << FixItHint::CreateRemoval(
+          {LhsExpr->getEndLoc().getLocWithOffset(1), RhsIL->getEndLoc()});
+      return;
     }
   }
 
@@ -911,9 +908,9 @@ void NotNullTerminatedResultCheck::memcpySFix(
 void NotNullTerminatedResultCheck::memchrFix(
     StringRef Name, const MatchFinder::MatchResult &Result) {
   const auto *FunctionExpr = 
Result.Nodes.getNodeAs<CallExpr>(FunctionExprName);
-  if (const auto *GivenCL = 
dyn_cast<CharacterLiteral>(FunctionExpr->getArg(1)))
-    if (GivenCL->getValue() != 0)
-      return;
+  if (const auto *GivenCL = 
dyn_cast<CharacterLiteral>(FunctionExpr->getArg(1));
+      GivenCL && GivenCL->getValue() != 0)
+    return;
 
   auto Diag = diag(FunctionExpr->getArg(2)->IgnoreParenCasts()->getBeginLoc(),
                    "the length is too short to include the null terminator");
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
index dda687ff7ade5..1e3615f9ac971 100644
--- a/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
@@ -90,9 +90,9 @@ static const Decl *findRVRefOverload(const FunctionDecl &FD,
   for (const Decl *Overload : LookupResult) {
     if (Overload == &FD)
       continue;
-    if (const auto *O = dyn_cast<FunctionDecl>(Overload))
-      if (hasSameParameterTypes(FD, *O, PD))
-        return O;
+    if (const auto *O = dyn_cast<FunctionDecl>(Overload);
+        O && hasSameParameterTypes(FD, *O, PD))
+      return O;
   }
   return nullptr;
 }
diff --git a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp
index 49ba3b83795dd..87ff884ae529f 100644
--- a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp
@@ -375,15 +375,14 @@ void SizeofExpressionCheck::check(const 
MatchFinder::MatchResult &Result) {
 
     const auto *SzOfExpr = Result.Nodes.getNodeAs<Expr>("sizeof-expr");
 
-    if (const auto *Type = dyn_cast<ArrayType>(SizeofArgTy)) {
-      // check if the array element size is larger than one. If true,
-      // the size of the array is higher than the number of elements
-      if (!getSizeOfType(Ctx, Type->getElementType().getTypePtr()).isOne()) {
-        diag(SzOfExpr->getBeginLoc(),
-             "suspicious usage of 'sizeof' in the loop")
-            << SzOfExpr->getSourceRange();
-      }
-    }
+    // check if the array element size is larger than one. If true,
+    // the size of the array is higher than the number of elements
+    if (const auto *Type = dyn_cast<ArrayType>(SizeofArgTy);
+        Type &&
+        !getSizeOfType(Ctx, Type->getElementType().getTypePtr()).isOne())
+      diag(SzOfExpr->getBeginLoc(), "suspicious usage of 'sizeof' in the loop")
+          << SzOfExpr->getSourceRange();
+
   } else if (const auto *E = Result.Nodes.getNodeAs<Expr>("sizeof-pointer")) {
     diag(E->getBeginLoc(), "suspicious usage of 'sizeof()' on an expression "
                            "of pointer type")
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp
index 7890afb41addb..4247c9050009d 100644
--- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp
@@ -52,14 +52,13 @@ void SuspiciousMemoryComparisonCheck::check(
     if (PointeeType->isRecordType()) {
       if (const RecordDecl *RD =
               PointeeType->getAsRecordDecl()->getDefinition()) {
-        if (const auto *CXXDecl = dyn_cast<CXXRecordDecl>(RD)) {
-          if (!CXXDecl->isStandardLayout()) {
-            diag(CE->getBeginLoc(),
-                 "comparing object representation of non-standard-layout type "
-                 "%0; consider using a comparison operator instead")
-                << PointeeQualifiedType;
-            break;
-          }
+        if (const auto *CXXDecl = dyn_cast<CXXRecordDecl>(RD);
+            CXXDecl && !CXXDecl->isStandardLayout()) {
+          diag(CE->getBeginLoc(),
+               "comparing object representation of non-standard-layout type "
+               "%0; consider using a comparison operator instead")
+              << PointeeQualifiedType;
+          break;
         }
       }
     }
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp
index 4f0d819d2147b..80a726dc7f0dd 100644
--- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp
@@ -108,10 +108,9 @@ void SuspiciousMissingCommaCheck::check(
   unsigned int Count = 0;
   for (unsigned int I = 0; I < Size; ++I) {
     const Expr *Child = InitializerList->getInit(I)->IgnoreImpCasts();
-    if (const auto *Literal = dyn_cast<StringLiteral>(Child)) {
-      if (Literal->getNumConcatenated() > 1)
-        ++Count;
-    }
+    if (const auto *Literal = dyn_cast<StringLiteral>(Child);
+        Literal && Literal->getNumConcatenated() > 1)
+      ++Count;
   }
 
   // Warn only when concatenation is not common in this initializer list.
diff --git 
a/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp
index bf31218131d5e..96286fce0d8ab 100644
--- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp
@@ -81,9 +81,9 @@ class FindAssignToVarBefore
 
   bool VisitDeclStmt(const DeclStmt *S) {
     for (const Decl *D : S->getDeclGroup())
-      if (const auto *LeftVar = dyn_cast<VarDecl>(D))
-        if (LeftVar->hasInit())
-          return isAccessForVar(LeftVar->getInit());
+      if (const auto *LeftVar = dyn_cast<VarDecl>(D);
+          LeftVar && LeftVar->hasInit())
+        return isAccessForVar(LeftVar->getInit());
     return false;
   }
   bool VisitBinaryOperator(const BinaryOperator *S) {
@@ -140,9 +140,10 @@ void SuspiciousReallocUsageCheck::check(
           dyn_cast<DeclRefExpr>(PtrInputExpr->IgnoreParenImpCasts()))
     if (const auto *Var = dyn_cast<VarDecl>(DeclRef->getDecl()))
       if (const auto *Func =
-              Result.Nodes.getNodeAs<FunctionDecl>("parent_function"))
-        if (FindAssignToVarBefore{Var, DeclRef, SM}.Visit(Func->getBody()))
-          return;
+              Result.Nodes.getNodeAs<FunctionDecl>("parent_function");
+          Func &&
+          FindAssignToVarBefore{Var, DeclRef, SM}.Visit(Func->getBody()))
+        return;
 
   const StringRef CodeOfAssignedExpr = Lexer::getSourceText(
       CharSourceRange::getTokenRange(PtrResultExpr->getSourceRange()), SM,
diff --git a/clang-tools-extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp
index 152c0cbd106f5..ba4c034a4b1a8 100644
--- a/clang-tools-extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp
@@ -25,10 +25,10 @@ void SwappedArgumentsCheck::registerMatchers(MatchFinder 
*Finder) {
 /// implicit conversions that have no effect on the input but block our view 
for
 /// other implicit casts.
 static const Expr *ignoreNoOpCasts(const Expr *E) {
-  if (auto *Cast = dyn_cast<CastExpr>(E))
-    if (Cast->getCastKind() == CK_LValueToRValue ||
-        Cast->getCastKind() == CK_NoOp)
-      return ignoreNoOpCasts(Cast->getSubExpr());
+  if (auto *Cast = dyn_cast<CastExpr>(E);
+      Cast && (Cast->getCastKind() == CK_LValueToRValue ||
+               Cast->getCastKind() == CK_NoOp))
+    return ignoreNoOpCasts(Cast->getSubExpr());
   return E;
 }
 
diff --git a/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
index f8555aa251165..937ab9b1e0d43 100644
--- a/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
@@ -424,13 +424,12 @@ void UseAfterMoveFinder::getDeclRefs(
             !MovedAs->hasMemberName(Member->getMemberDecl()->getIdentifier())) 
{
           continue;
         }
-        if (DeclRef && BlockMap->blockContainingStmt(DeclRef) == Block) {
+        if (DeclRef && BlockMap->blockContainingStmt(DeclRef) == Block &&
+            (Operator || !isSpecifiedAfterMove(DeclRef->getDecl())))
           // Ignore uses of a standard smart pointer or classes annotated as
           // "null_after_move" (smart-pointer-like behavior) that don't
           // dereference the pointer.
-          if (Operator || !isSpecifiedAfterMove(DeclRef->getDecl()))
-            DeclRefs->insert(DeclRef);
-        }
+          DeclRefs->insert(DeclRef);
       }
     };
 
diff --git a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp
index 0fd965f88e0d5..61c54bb6ca6ef 100644
--- a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp
@@ -241,23 +241,22 @@ void VirtualNearMissCheck::check(const 
MatchFinder::MatchResult &Result) {
 
         const unsigned EditDistance = BaseMD->getName().edit_distance(
             DerivedMD->getName(), EditDistanceThreshold);
-        if (EditDistance > 0 && EditDistance <= EditDistanceThreshold) {
-          if (checkOverrideWithoutName(Context, BaseMD, DerivedMD)) {
-            // A "virtual near miss" is found.
-            auto Range = CharSourceRange::getTokenRange(
-                SourceRange(DerivedMD->getLocation()));
-
-            const bool ApplyFix = !BaseMD->isTemplateInstantiation() &&
-                                  !DerivedMD->isTemplateInstantiation();
-            auto Diag =
-                diag(DerivedMD->getBeginLoc(),
-                     "method '%0' has a similar name and the same signature as 
"
-                     "virtual method '%1'; did you mean to override it?")
-                << DerivedMD->getQualifiedNameAsString()
-                << BaseMD->getQualifiedNameAsString();
-            if (ApplyFix)
-              Diag << FixItHint::CreateReplacement(Range, BaseMD->getName());
-          }
+        if (EditDistance > 0 && EditDistance <= EditDistanceThreshold &&
+            checkOverrideWithoutName(Context, BaseMD, DerivedMD)) {
+          // A "virtual near miss" is found.
+          auto Range = CharSourceRange::getTokenRange(
+              SourceRange(DerivedMD->getLocation()));
+
+          const bool ApplyFix = !BaseMD->isTemplateInstantiation() &&
+                                !DerivedMD->isTemplateInstantiation();
+          auto Diag =
+              diag(DerivedMD->getBeginLoc(),
+                   "method '%0' has a similar name and the same signature as "
+                   "virtual method '%1'; did you mean to override it?")
+              << DerivedMD->getQualifiedNameAsString()
+              << BaseMD->getQualifiedNameAsString();
+          if (ApplyFix)
+            Diag << FixItHint::CreateReplacement(Range, BaseMD->getName());
         }
       }
     }
diff --git 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
index f04b5e87a084c..d5f36dde14aea 100644
--- 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
+++ 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
@@ -184,11 +184,10 @@ void PreferMemberInitializerCheck::check(
     if (isNoReturnCallStatement(S))
       return;
 
-    if (const auto *CondOp = dyn_cast<ConditionalOperator>(S)) {
-      if (isNoReturnCallStatement(CondOp->getLHS()) ||
-          isNoReturnCallStatement(CondOp->getRHS()))
-        return;
-    }
+    if (const auto *CondOp = dyn_cast<ConditionalOperator>(S);
+        CondOp && (isNoReturnCallStatement(CondOp->getLHS()) ||
+                   isNoReturnCallStatement(CondOp->getRHS())))
+      return;
 
     std::optional<AssignmentPair> AssignmentToMember =
         isAssignmentToMemberOf(Class, S, Ctor);

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

Reply via email to