Author: Baranov Victor
Date: 2026-08-04T16:35:40+03:00
New Revision: 0b71b1a4e51276043c7417a82ad87381f76cd4d6

URL: 
https://github.com/llvm/llvm-project/commit/0b71b1a4e51276043c7417a82ad87381f76cd4d6
DIFF: 
https://github.com/llvm/llvm-project/commit/0b71b1a4e51276043c7417a82ad87381f76cd4d6.diff

LOG: [clang-tidy][NFC] Apply const-correctness for auto 5/N (#213843)

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
    clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.cpp
    clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
    clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp
    clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp
    clang-tools-extra/clang-tidy/misc/MisplacedConstCheck.cpp
    clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
    clang-tools-extra/clang-tidy/misc/NonCopyableObjectsCheck.cpp
    
clang-tools-extra/clang-tidy/misc/NonPrivateMemberVariablesInClassesCheck.cpp
    clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
    clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
    clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
    clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp
    clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
    clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
    clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
    clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
    clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
    clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
    clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp
    clang-tools-extra/clang-tidy/modernize/IntegralLiteralExpressionMatcher.cpp
    clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
    clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
    clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp
    clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
    clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp
    clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
    clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
    clang-tools-extra/clang-tidy/modernize/ReplaceRandomShuffleCheck.cpp
    clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp
    clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseUncaughtExceptionsCheck.cpp
    clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
index 88ee9fd58fd72..2385808ff7a7e 100644
--- a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
@@ -264,14 +264,14 @@ void ConstCorrectnessCheck::check(const 
MatchFinder::MatchResult &Result) {
       VC = VariableCategory::Pointer;
   }
 
-  auto CheckValue = [&]() {
+  const auto CheckValue = [&]() {
     // Offload const-analysis to utility function.
     if (isMutated(Variable, LocalScope, Function, Result.Context))
       return;
 
-    auto Diag = diag(Variable->getBeginLoc(),
-                     "variable %0 of type %1 can be declared 'const'")
-                << Variable << VT;
+    const auto Diag = diag(Variable->getBeginLoc(),
+                           "variable %0 of type %1 can be declared 'const'")
+                      << Variable << VT;
     if (IsNormalVariableInTemplate)
       TemplateDiagnosticsCache.insert(Variable->getBeginLoc());
     if (!CanBeFixIt)
@@ -302,12 +302,12 @@ void ConstCorrectnessCheck::check(const 
MatchFinder::MatchResult &Result) {
     }
   };
 
-  auto CheckPointee = [&]() {
+  const auto CheckPointee = [&]() {
     assert(VC == VariableCategory::Pointer);
     registerScope(LocalScope, Result.Context);
     if (ScopesCache[LocalScope]->isPointeeMutated(Variable))
       return;
-    auto Diag =
+    const auto Diag =
         diag(Variable->getBeginLoc(),
              "pointee of variable %0 of type %1 can be declared 'const'")
         << Variable << VT;

diff  --git a/clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.cpp 
b/clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.cpp
index 75693a0c563e9..2169dffca5c51 100644
--- a/clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.cpp
@@ -29,7 +29,7 @@ AST_MATCHER_P(Stmt, forEachPrevStmt, 
ast_matchers::internal::Matcher<Stmt>,
   DynTypedNode P;
   bool IsHostile = false;
   for (const Stmt *Child = &Node; Child; Child = P.get<Stmt>()) {
-    auto Parents = Finder->getASTContext().getParents(*Child);
+    const auto Parents = Finder->getASTContext().getParents(*Child);
     if (Parents.empty())
       break;
     P = *Parents.begin();
@@ -68,7 +68,7 @@ static auto typeWithNameIn(const std::vector<StringRef> 
&Names) {
 }
 
 static auto functionWithNameIn(const std::vector<StringRef> &Names) {
-  auto Call = callExpr(callee(functionDecl(hasAnyName(Names))));
+  const auto Call = callExpr(callee(functionDecl(hasAnyName(Names))));
   return anyOf(expr(cxxBindTemporaryExpr(has(Call))), expr(Call));
 }
 

diff  --git a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
index ae063a19d779d..edb742a3fe1ae 100644
--- a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
@@ -31,7 +31,7 @@ 
DefinitionsInHeadersCheck::DefinitionsInHeadersCheck(StringRef Name,
     : ClangTidyCheck(Name, Context) {}
 
 void DefinitionsInHeadersCheck::registerMatchers(MatchFinder *Finder) {
-  auto DefinitionMatcher =
+  const auto DefinitionMatcher =
       anyOf(functionDecl(isDefinition(), unless(isDeleted())),
             varDecl(isDefinition()));
   Finder->addMatcher(

diff  --git a/clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp
index 23261fe5af61b..2304aef84af3d 100644
--- a/clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp
@@ -81,9 +81,9 @@ void ExplicitConstructorCheck::check(const 
MatchFinder::MatchResult &Result) {
     else
       ConstructorDescription = "initializer-list";
 
-    auto Diag = diag(Ctor->getLocation(),
-                     "%0 constructor should not be declared explicit")
-                << ConstructorDescription;
+    const auto Diag = diag(Ctor->getLocation(),
+                           "%0 constructor should not be declared explicit")
+                      << ConstructorDescription;
     if (ExplicitTokenRange.isValid())
       Diag << FixItHint::CreateRemoval(ExplicitTokenRange);
     return;
@@ -105,7 +105,7 @@ void ExplicitConstructorCheck::check(const 
MatchFinder::MatchResult &Result) {
   const bool SingleArgument =
       Ctor->getNumParams() == 1 && !Ctor->getParamDecl(0)->isParameterPack();
   const SourceLocation Loc = Ctor->getLocation();
-  auto Diag =
+  const auto Diag =
       diag(Loc, ExplicitExpr ? WithExpressionWarningMessage
                              : NoExpressionWarningMessage)
       << (SingleArgument

diff  --git 
a/clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp
index 894c6db8975f2..192f21b898081 100644
--- a/clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp
@@ -78,7 +78,7 @@ static bool containsMisleadingBidi(StringRef Buffer,
     }
     // Close a PDI Context.
     else if (CodePoint == PDI) {
-      auto R = llvm::find(llvm::reverse(BidiContexts), PDI);
+      const auto R = llvm::find(llvm::reverse(BidiContexts), PDI);
       if (R != BidiContexts.rend())
         BidiContexts.resize(BidiContexts.rend() - R - 1);
     }

diff  --git a/clang-tools-extra/clang-tidy/misc/MisplacedConstCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/MisplacedConstCheck.cpp
index a7daad4838c9d..a7da7502c7ef4 100644
--- a/clang-tools-extra/clang-tidy/misc/MisplacedConstCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/MisplacedConstCheck.cpp
@@ -15,7 +15,7 @@ using namespace clang::ast_matchers;
 namespace clang::tidy::misc {
 
 void MisplacedConstCheck::registerMatchers(MatchFinder *Finder) {
-  auto NonConstAndNonFunctionPointerType = hasType(pointerType(unless(
+  const auto NonConstAndNonFunctionPointerType = hasType(pointerType(unless(
       pointee(anyOf(isConstQualified(), ignoringParens(functionType()))))));
 
   Finder->addMatcher(

diff  --git a/clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
index ca269fd1d543c..599e7fbf0f21e 100644
--- a/clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
@@ -31,7 +31,7 @@ static CallStackTy pathfindSomeCycle(ArrayRef<CallGraphNode 
*> SCC) {
       llvm::from_range, SCC);
 
   // Is node N part if the current SCC?
-  auto NodeIsPartOfSCC = [&SCCElts](CallGraphNode *N) {
+  const auto NodeIsPartOfSCC = [&SCCElts](CallGraphNode *N) {
     return SCCElts.contains(N);
   };
 

diff  --git a/clang-tools-extra/clang-tidy/misc/NonCopyableObjectsCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/NonCopyableObjectsCheck.cpp
index bfeb5fa855af6..eb3915bb3965b 100644
--- a/clang-tools-extra/clang-tidy/misc/NonCopyableObjectsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/NonCopyableObjectsCheck.cpp
@@ -36,7 +36,7 @@ void NonCopyableObjectsCheck::registerMatchers(MatchFinder 
*Finder) {
       hasType(namedDecl(hasAnyName("::pthread_cond_t", "::pthread_mutex_t",
                                    "pthread_cond_t", "pthread_mutex_t"))
                   .bind("type_decl"));
-  auto BadEitherType = anyOf(BadFILEType, BadPOSIXType);
+  const auto BadEitherType = anyOf(BadFILEType, BadPOSIXType);
 
   Finder->addMatcher(
       namedDecl(anyOf(varDecl(BadFILEType), fieldDecl(BadFILEType)))

diff  --git 
a/clang-tools-extra/clang-tidy/misc/NonPrivateMemberVariablesInClassesCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/NonPrivateMemberVariablesInClassesCheck.cpp
index fffce2095d8d5..54cc5803956db 100644
--- 
a/clang-tools-extra/clang-tidy/misc/NonPrivateMemberVariablesInClassesCheck.cpp
+++ 
b/clang-tools-extra/clang-tidy/misc/NonPrivateMemberVariablesInClassesCheck.cpp
@@ -65,9 +65,9 @@ void 
NonPrivateMemberVariablesInClassesCheck::registerMatchers(
   // If we are ok with public fields, then we only want to complain about
   // protected fields, else we want to complain about all non-private fields.
   // We can ignore public member variables in structs/classes, in unions.
-  auto InterestingField = IgnorePublicMemberVariables
-                              ? fieldDecl(isProtected())
-                              : fieldDecl(unless(isPrivate()));
+  const auto InterestingField = IgnorePublicMemberVariables
+                                    ? fieldDecl(isProtected())
+                                    : fieldDecl(unless(isPrivate()));
 
   // We only want the records that not only contain the mutable data 
(non-static
   // member variables), but also have some logic (non-static, non-implicit

diff  --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
index 89dab5aa0ea9b..0c6df382d2a01 100644
--- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
@@ -839,7 +839,7 @@ static bool areSidesBinaryConstExpressions(const 
BinaryOperator *&BinOp,
   if (!LhsBinOp || !RhsBinOp)
     return false;
 
-  auto IsIntegerConstantExpr = [AstCtx](const Expr *E) {
+  const auto IsIntegerConstantExpr = [AstCtx](const Expr *E) {
     return !E->isValueDependent() && E->isIntegerConstantExpr(*AstCtx);
   };
 
@@ -862,7 +862,7 @@ static bool 
areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant(
   if (!Lhs || !Rhs)
     return false;
 
-  auto IsDefineExpr = [AstCtx](const Expr *E) {
+  const auto IsDefineExpr = [AstCtx](const Expr *E) {
     const SourceRange Lsr = E->getSourceRange();
     if (!Lsr.getBegin().isMacroID() || E->isValueDependent() ||
         !E->isIntegerConstantExpr(*AstCtx))
@@ -890,7 +890,7 @@ static bool retrieveConstExprFromBothSides(const 
BinaryOperator *&BinOp,
   const auto *BinOpLhs = cast<BinaryOperator>(BinOp->getLHS());
   const auto *BinOpRhs = cast<BinaryOperator>(BinOp->getRHS());
 
-  auto IsIntegerConstantExpr = [AstCtx](const Expr *E) {
+  const auto IsIntegerConstantExpr = [AstCtx](const Expr *E) {
     return !E->isValueDependent() && E->isIntegerConstantExpr(*AstCtx);
   };
 
@@ -1453,7 +1453,7 @@ void RedundantExpressionCheck::check(const 
MatchFinder::MatchResult &Result) {
           Result.Nodes.getNodeAs<UnaryOperator>("logical-bitwise-confusion")) {
     const SourceLocation OperatorLoc = NegateOperator->getOperatorLoc();
 
-    auto Diag =
+    const auto Diag =
         diag(OperatorLoc,
              "ineffective logical negation operator used; did you mean '~'?");
     const SourceLocation LogicalNotLocation = OperatorLoc.getLocWithOffset(1);
@@ -1486,8 +1486,8 @@ void RedundantExpressionCheck::check(const 
MatchFinder::MatchResult &Result) {
     if (AndValue->getActiveBits() > *ShiftingValue)
       return;
 
-    auto Diag = diag(BinaryAndExpr->getOperatorLoc(),
-                     "ineffective bitwise and operation");
+    const auto Diag = diag(BinaryAndExpr->getOperatorLoc(),
+                           "ineffective bitwise and operation");
   }
 
   // Check for the following bound expressions:

diff  --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
index 554e759268330..f6189aaf5f928 100644
--- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
@@ -31,7 +31,7 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) 
{
       expr(anyOf(cxxBoolLiteral(equals(false)), integerLiteral(equals(0)),
                  cxxNullPtrLiteralExpr(), gnuNullExpr(), NegatedString))
           .bind("isAlwaysFalse");
-  auto IsAlwaysFalseWithCast = ignoringParenImpCasts(anyOf(
+  const auto IsAlwaysFalseWithCast = ignoringParenImpCasts(anyOf(
       IsAlwaysFalse, cStyleCastExpr(has(ignoringParenImpCasts(IsAlwaysFalse)))
                          .bind("castExpr")));
   auto AssertExprRoot = anyOf(
@@ -56,7 +56,7 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) 
{
                                    ignoringParenCasts(AssertExprRoot))))))),
            unless(NonConstexprCode), unless(hasDescendant(NonConstexprCode)))
           .bind("condition");
-  auto Condition =
+  const auto Condition =
       anyOf(ignoringParenImpCasts(callExpr(
                 hasDeclaration(functionDecl(hasName("__builtin_expect"))),
                 hasArgument(0, AssertCondition))),

diff  --git 
a/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
index 3d1fc88e7233a..a5b45ad935934 100644
--- a/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
@@ -310,7 +310,7 @@ reportCycles(ArrayRef<const VarUseNode *> SCC,
              clang::tidy::misc::StaticInitializationCycleCheck &Chk) {
   // Check if the SCC contains any variable, otherwise it is a function
   // recursion.
-  auto NodeIsVar = [](const VarUseNode *N) { return N->isVar(); };
+  const auto NodeIsVar = [](const VarUseNode *N) { return N->isVar(); };
   const auto *VarNode = llvm::find_if(SCC, NodeIsVar);
   if (VarNode == SCC.end())
     return;

diff  --git 
a/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp
index 1057fe21b7f05..95ce3fa11cd77 100644
--- a/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp
@@ -68,7 +68,7 @@ void 
ThrowByValueCatchByReferenceCheck::diagnoseThrowLocations(
   auto *SubExpr = ThrowExpr->getSubExpr();
   if (!SubExpr)
     return;
-  auto QualType = SubExpr->getType();
+  const auto QualType = SubExpr->getType();
   if (QualType->isPointerType()) {
     // The code is throwing a pointer.
     // In case it is string literal, it is safe and we return.
@@ -108,7 +108,7 @@ void 
ThrowByValueCatchByReferenceCheck::diagnoseThrowLocations(
       // If we have a copy / move construction, we emit a diagnosis message if
       // the object that we copy construct from is neither a function parameter
       // nor a variable declared in a catch statement
-      auto ArgIter =
+      const auto ArgIter =
           ConstructorCall
               ->arg_begin(); // there's only one for copy constructors
       auto *CurrentSubExpr = (*ArgIter)->IgnoreImpCasts();
@@ -129,10 +129,10 @@ void 
ThrowByValueCatchByReferenceCheck::diagnoseCatchLocations(
     const CXXCatchStmt *CatchStmt, ASTContext &Context) {
   if (!CatchStmt)
     return;
-  auto CaughtType = CatchStmt->getCaughtType();
+  const auto CaughtType = CatchStmt->getCaughtType();
   if (CaughtType.isNull())
     return;
-  auto *VarDecl = CatchStmt->getExceptionDecl();
+  const auto *VarDecl = CatchStmt->getExceptionDecl();
   if (const auto *PT = CaughtType.getCanonicalType()->getAs<PointerType>()) {
     const char *DiagMsgCatchReference =
         "catch handler catches a pointer value; "

diff  --git a/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
index ab2077b304f13..fcc2a3db79e7d 100644
--- a/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
@@ -59,7 +59,7 @@ getDeleterForUniquePtr(const MatchFinder::MatchResult 
&Result, StringRef ID) {
       Result.Nodes.getNodeAs<ClassTemplateSpecializationDecl>(ID);
   if (!Class)
     return nullptr;
-  auto DeleterArgument = Class->getTemplateArgs()[1];
+  const auto DeleterArgument = Class->getTemplateArgs()[1];
   if (DeleterArgument.getKind() != TemplateArgument::Type)
     return nullptr;
   return DeleterArgument.getAsType().getTypePtr();
@@ -126,8 +126,9 @@ void UniqueptrResetReleaseCheck::check(const 
MatchFinder::MatchResult &Result) {
     NeedsUtilityInclude = true;
   }
 
-  auto D = diag(ResetMember->getExprLoc(),
-                "prefer 'unique_ptr<>' assignment over 'release' and 'reset'");
+  const auto D =
+      diag(ResetMember->getExprLoc(),
+           "prefer 'unique_ptr<>' assignment over 'release' and 'reset'");
   if (ResetMember->isArrow())
     D << FixItHint::CreateInsertion(ResetMember->getBeginLoc(), "*");
   D << FixItHint::CreateReplacement(

diff  --git a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
index b95c829258b67..dabef7cc813cb 100644
--- a/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
@@ -146,7 +146,8 @@ void UnusedParametersCheck::warnOnUnusedParameter(
   // Don't bother to diagnose invalid parameters as being unused.
   if (Param->isInvalidDecl())
     return;
-  auto MyDiag = diag(Param->getLocation(), "parameter %0 is unused") << Param;
+  const auto MyDiag = diag(Param->getLocation(), "parameter %0 is unused")
+                      << Param;
 
   if (!Indexer)
     Indexer = std::make_unique<IndexerVisitor>(*Result.Context);

diff  --git a/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
index 309342a537ca7..887c2cd4c0963 100644
--- a/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
@@ -56,7 +56,7 @@ void UnusedUsingDeclsCheck::registerMatchers(MatchFinder 
*Finder) {
   if (utils::isFileExtension(getCurrentMainFile(), getHeaderFileExtensions()))
     return;
   Finder->addMatcher(usingDecl(isExpansionInMainFile()).bind("using"), this);
-  auto DeclMatcher = hasDeclaration(namedDecl().bind("used"));
+  const auto DeclMatcher = hasDeclaration(namedDecl().bind("used"));
   Finder->addMatcher(loc(templateSpecializationType(DeclMatcher)), this);
   Finder->addMatcher(loc(deducedTemplateSpecializationType(
                          refsToTemplatedDecl(namedDecl().bind("used")))),
@@ -75,7 +75,8 @@ void UnusedUsingDeclsCheck::registerMatchers(MatchFinder 
*Finder) {
   // Cases where we can identify the UsingShadowDecl directly, rather than
   // just its target.
   // FIXME: cover more cases in this way, as the AST supports it.
-  auto ThroughShadowMatcher = throughUsingDecl(namedDecl().bind("usedShadow"));
+  const auto ThroughShadowMatcher =
+      throughUsingDecl(namedDecl().bind("usedShadow"));
   Finder->addMatcher(declRefExpr(ThroughShadowMatcher), this);
   Finder->addMatcher(loc(usingType(ThroughShadowMatcher)), this);
 }
@@ -124,7 +125,7 @@ void UnusedUsingDeclsCheck::check(const 
MatchFinder::MatchResult &Result) {
   }
 
   // Mark a corresponding using declaration as used.
-  auto RemoveNamedDecl = [&](const NamedDecl *Used) {
+  const auto RemoveNamedDecl = [&](const NamedDecl *Used) {
     removeFromFoundDecls(Used);
     // Also remove variants of Used.
     if (const auto *FD = dyn_cast<FunctionDecl>(Used)) {
@@ -162,7 +163,7 @@ void UnusedUsingDeclsCheck::check(const 
MatchFinder::MatchResult &Result) {
     }
 
     if (Used->getKind() == TemplateArgument::Type) {
-      if (auto *RD = Used->getAsType()->getAsCXXRecordDecl())
+      if (const auto *RD = Used->getAsType()->getAsCXXRecordDecl())
         removeFromFoundDecls(RD);
       return;
     }

diff  --git a/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
index dd8fb6889e14d..c9f63c3b5e2ce 100644
--- a/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
@@ -653,7 +653,7 @@ void AvoidBindCheck::check(const MatchFinder::MatchResult 
&Result) {
   const auto *MatchedDecl = Result.Nodes.getNodeAs<CallExpr>("bind");
 
   LambdaProperties LP = getLambdaProperties(Result);
-  auto Diag =
+  const auto Diag =
       diag(MatchedDecl->getBeginLoc(),
            formatv("prefer a lambda to {0}::bind", LP.BindNamespace).str());
   if (!LP.IsFixitSupported)

diff  --git a/clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
index abf2d4ccb077b..98ca1a46be845 100644
--- a/clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
@@ -79,7 +79,7 @@ static bool needsLeadingSpace(CharSourceRange Range, 
StringRef ReplacementText,
   if (Begin.isInvalid() || Begin.isMacroID())
     return false;
 
-  auto BeginInfo = SM.getDecomposedLoc(Begin);
+  const auto BeginInfo = SM.getDecomposedLoc(Begin);
   bool Invalid = false;
   StringRef Buffer = SM.getBufferData(BeginInfo.first, &Invalid);
   if (Invalid || BeginInfo.second == 0)
@@ -115,7 +115,7 @@ static bool sameTypeAsWritten(QualType X, QualType Y) {
   if (X.getCanonicalType() != Y.getCanonicalType())
     return false;
 
-  auto TC = X->getTypeClass();
+  const auto TC = X->getTypeClass();
   if (TC != Y->getTypeClass())
     return false;
 
@@ -147,7 +147,7 @@ void AvoidCStyleCastCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (CastExpr->getCastKind() == CK_ToVoid)
     return;
 
-  auto IsFunction = [](QualType T) {
+  const auto IsFunction = [](QualType T) {
     T = T.getCanonicalType().getNonReferenceType();
     return T->isFunctionType() || T->isFunctionPointerType() ||
            T->isMemberFunctionPointerType();
@@ -222,11 +222,11 @@ void AvoidCStyleCastCheck::check(const 
MatchFinder::MatchResult &Result) {
       CastText.insert(CastText.begin(), ' ');
     Diag << FixItHint::CreateReplacement(ReplaceRange, CastText);
   };
-  auto ReplaceWithNamedCast = [&](StringRef CastType) {
+  const auto ReplaceWithNamedCast = [&](StringRef CastType) {
     Diag << CastType;
     ReplaceWithCast((CastType + "<" + DestTypeString + ">").str());
   };
-  auto ReplaceWithConstructorCall = [&]() {
+  const auto ReplaceWithConstructorCall = [&]() {
     Diag << "constructor call syntax";
     // FIXME: Validate DestTypeString, maybe.
     ReplaceWithCast(DestTypeString.str());

diff  --git a/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
index 88c411fcc6633..702fbcd19f9ba 100644
--- a/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
@@ -61,9 +61,9 @@ class ExternCRefutationVisitor
         !LinkSpecDecl->hasBraces())
       return true;
 
-    auto ExternCBlockBegin = LinkSpecDecl->getBeginLoc();
-    auto ExternCBlockEnd = LinkSpecDecl->getEndLoc();
-    auto IsWrapped = [=, &SM = SM](const IncludeMarker &Marker) -> bool {
+    const auto ExternCBlockBegin = LinkSpecDecl->getBeginLoc();
+    const auto ExternCBlockEnd = LinkSpecDecl->getEndLoc();
+    const auto IsWrapped = [=, &SM = SM](const IncludeMarker &Marker) -> bool {
       return SM.isBeforeInTranslationUnit(ExternCBlockBegin, Marker.DiagLoc) &&
              SM.isBeforeInTranslationUnit(Marker.DiagLoc, ExternCBlockEnd);
     };
@@ -187,7 +187,7 @@ void IncludeModernizePPCallbacks::InclusionDirective(
   // 2. Insert `using namespace std;` to the beginning of TU.
   // 3. Do nothing and let the user deal with the migration himself.
   const SourceLocation DiagLoc = FilenameRange.getBegin();
-  if (auto It = CStyledHeaderToCxx.find(FileName);
+  if (const auto It = CStyledHeaderToCxx.find(FileName);
       It != CStyledHeaderToCxx.end()) {
     IncludesToBeProcessed.emplace_back(IncludeMarker{
         It->second, FileName, FilenameRange.getAsRange(), DiagLoc});

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp
index ddce19c00979c..96cca56a5944d 100644
--- a/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp
@@ -28,8 +28,9 @@ static std::optional<const char *> 
getReplacementType(StringRef Type) {
 }
 
 void DeprecatedIosBaseAliasesCheck::registerMatchers(MatchFinder *Finder) {
-  auto IoStateDecl = typedefDecl(hasAnyName(DeprecatedTypes)).bind("TypeDecl");
-  auto IoStateType = typedefType(hasDeclaration(IoStateDecl));
+  const auto IoStateDecl =
+      typedefDecl(hasAnyName(DeprecatedTypes)).bind("TypeDecl");
+  const auto IoStateType = typedefType(hasDeclaration(IoStateDecl));
 
   Finder->addMatcher(typeLoc(loc(IoStateType)).bind("TypeLoc"), this);
 }
@@ -43,7 +44,7 @@ void DeprecatedIosBaseAliasesCheck::check(
   auto Replacement = getReplacementType(TypeName);
 
   TypeLoc TL = *Result.Nodes.getNodeAs<TypeLoc>("TypeLoc");
-  if (auto QTL = TL.getAs<QualifiedTypeLoc>())
+  if (const auto QTL = TL.getAs<QualifiedTypeLoc>())
     TL = QTL.getUnqualifiedLoc();
 
   SourceLocation IoStateLoc = TL.castAs<TypedefTypeLoc>().getNameLoc();
@@ -60,9 +61,10 @@ void DeprecatedIosBaseAliasesCheck::check(
 
   if (Replacement) {
     const char *FixName = *Replacement;
-    auto Builder = diag(IoStateLoc, "'std::ios_base::%0' is deprecated; use "
-                                    "'std::ios_base::%1' instead")
-                   << TypeName << FixName;
+    const auto Builder =
+        diag(IoStateLoc, "'std::ios_base::%0' is deprecated; use "
+                         "'std::ios_base::%1' instead")
+        << TypeName << FixName;
 
     if (Fix)
       Builder << FixItHint::CreateReplacement(SourceRange(IoStateLoc, EndLoc),

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/IntegralLiteralExpressionMatcher.cpp 
b/clang-tools-extra/clang-tidy/modernize/IntegralLiteralExpressionMatcher.cpp
index 192ee21aca1c0..0f13528c07643 100644
--- 
a/clang-tools-extra/clang-tidy/modernize/IntegralLiteralExpressionMatcher.cpp
+++ 
b/clang-tools-extra/clang-tidy/modernize/IntegralLiteralExpressionMatcher.cpp
@@ -277,7 +277,7 @@ bool IntegralLiteralExpressionMatcher::conditionalExpr() {
 }
 
 bool IntegralLiteralExpressionMatcher::commaExpr() {
-  auto NonTerminal = [this] { return conditionalExpr(); };
+  const auto NonTerminal = [this] { return conditionalExpr(); };
   if (CommaAllowed)
     return nonTerminalChainedExpr<tok::TokenKind::comma>(NonTerminal);
   return nonTerminalChainedExpr(NonTerminal, [](Token) { return false; });

diff  --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
index b0adf971ea4a6..6965569e6b87e 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
@@ -156,15 +156,16 @@ static StatementMatcher makeArrayLoopMatcher() {
 /// Client code will need to make sure that:
 ///   - The two containers on which 'begin' and 'end' are called are the same.
 static StatementMatcher makeIteratorLoopMatcher(bool IsReverse) {
-  auto BeginNameMatcher = IsReverse ? hasAnyName("rbegin", "crbegin")
-                                    : hasAnyName("begin", "cbegin");
-  auto BeginNameMatcherStd = IsReverse
-                                 ? hasAnyName("::std::rbegin", 
"::std::crbegin")
-                                 : hasAnyName("::std::begin", "::std::cbegin");
+  const auto BeginNameMatcher = IsReverse ? hasAnyName("rbegin", "crbegin")
+                                          : hasAnyName("begin", "cbegin");
+  const auto BeginNameMatcherStd =
+      IsReverse ? hasAnyName("::std::rbegin", "::std::crbegin")
+                : hasAnyName("::std::begin", "::std::cbegin");
 
-  auto EndNameMatcher =
+  const auto EndNameMatcher =
       IsReverse ? hasAnyName("rend", "crend") : hasAnyName("end", "cend");
-  auto EndNameMatcherStd = IsReverse ? hasAnyName("::std::rend", 
"::std::crend")
+  const auto EndNameMatcherStd = IsReverse
+                                     ? hasAnyName("::std::rend", 
"::std::crend")
                                      : hasAnyName("::std::end", "::std::cend");
 
   const StatementMatcher BeginCallMatcher =
@@ -497,7 +498,7 @@ static bool isDirectMemberExpr(const Expr *E) {
 static bool canBeModified(ASTContext *Context, const Expr *E) {
   if (E->getType().isConstQualified())
     return false;
-  auto Parents = Context->getParents(*E);
+  const auto Parents = Context->getParents(*E);
   if (Parents.size() != 1)
     return true;
   if (const auto *Cast = Parents[0].get<ImplicitCastExpr>()) {
@@ -918,7 +919,7 @@ void LoopConvertCheck::getIteratorLoopQualifiers(ASTContext 
*Context,
     // A node will only be bound with DerefByRefResultName if we're dealing
     // with a user-defined iterator type. Test the const qualification of
     // the reference type.
-    auto ValueType = DerefType->getNonReferenceType();
+    const auto ValueType = DerefType->getNonReferenceType();
 
     Descriptor.DerefByConstRef = ValueType.isConstQualified();
     Descriptor.ElemType = ValueType;

diff  --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp 
b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
index ae97a7e0a0266..da86ecf6395ae 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
@@ -591,7 +591,7 @@ bool ForLoopIndexUseVisitor::TraverseMemberExpr(MemberExpr 
*Member) {
 /// operator->(). The one exception is allowing vector::at() for pseudoarrays.
 bool ForLoopIndexUseVisitor::TraverseCXXMemberCallExpr(
     CXXMemberCallExpr *MemberCall) {
-  auto *Member =
+  const auto *Member =
       dyn_cast<MemberExpr>(MemberCall->getCallee()->IgnoreParenImpCasts());
   if (!Member)
     return VisitorBase::TraverseCXXMemberCallExpr(MemberCall);

diff  --git a/clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp
index aa4732ceba7e0..3c25dd7bd3aa2 100644
--- a/clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp
@@ -286,7 +286,7 @@ void MacroToEnumCallbacks::checkName(const Token 
&MacroNameTok) {
 
 void MacroToEnumCallbacks::rememberExpressionName(const Token &Tok) {
   const std::string Id = getTokenName(Tok).str();
-  auto Pos = llvm::lower_bound(ExpressionNames, Id);
+  const auto Pos = llvm::lower_bound(ExpressionNames, Id);
   if (Pos == ExpressionNames.end() || *Pos != Id)
     ExpressionNames.insert(Pos, Id);
 }
@@ -366,13 +366,14 @@ void MacroToEnumCallbacks::MacroUndefined(const Token 
&MacroNameTok,
                                           const MacroDirective *Undef) {
   rememberExpressionName(MacroNameTok);
 
-  auto MatchesToken = [&MacroNameTok](const EnumMacro &Macro) {
+  const auto MatchesToken = [&MacroNameTok](const EnumMacro &Macro) {
     return getTokenName(Macro.Name) == getTokenName(MacroNameTok);
   };
 
-  auto *It = llvm::find_if(Enums, [MatchesToken](const MacroList &MacroList) {
-    return llvm::any_of(MacroList, MatchesToken);
-  });
+  const auto *It =
+      llvm::find_if(Enums, [MatchesToken](const MacroList &MacroList) {
+        return llvm::any_of(MacroList, MatchesToken);
+      });
   if (It != Enums.end())
     Enums.erase(It);
 
@@ -522,7 +523,7 @@ void MacroToEnumCheck::registerPPCallbacks(const 
SourceManager &SM,
 
 void MacroToEnumCheck::registerMatchers(ast_matchers::MatchFinder *Finder) {
   using namespace ast_matchers;
-  auto TopLevelDecl = hasParent(translationUnitDecl());
+  const auto TopLevelDecl = hasParent(translationUnitDecl());
   Finder->addMatcher(decl(TopLevelDecl).bind("top"), this);
 }
 

diff  --git a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
index 42a60bb897028..a2a98111be3f8 100644
--- a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
@@ -70,7 +70,7 @@ void MakeSmartPtrCheck::registerPPCallbacks(const 
SourceManager &SM,
 void MakeSmartPtrCheck::registerMatchers(ast_matchers::MatchFinder *Finder) {
   // Calling make_smart_ptr from within a member function of a type with a
   // private or protected constructor would be ill-formed.
-  auto CanCallCtor = unless(has(ignoringImpCasts(
+  const auto CanCallCtor = unless(has(ignoringImpCasts(
       cxxConstructExpr(hasDeclaration(decl(unless(isPublic())))))));
 
   auto IsPlacement = hasAnyPlacementArg(anything());
@@ -256,7 +256,7 @@ void MakeSmartPtrCheck::checkReset(SourceManager &SM, 
ASTContext *Ctx,
 bool MakeSmartPtrCheck::replaceNew(DiagnosticBuilder &Diag,
                                    const CXXNewExpr *New, SourceManager &SM,
                                    ASTContext *Ctx) {
-  auto SkipParensParents = [&](const Expr *E) {
+  const auto SkipParensParents = [&](const Expr *E) {
     const TraversalKindScope RAII(*Ctx, TK_AsIs);
 
     for (const Expr *OldE = nullptr; E != OldE;) {
@@ -292,7 +292,7 @@ bool MakeSmartPtrCheck::replaceNew(DiagnosticBuilder &Diag,
   //   Foo(Bar{1, 2}) => true
   //   Foo(1) => false
   //   Foo{1} => false
-  auto HasListInitializedArgument = [](const CXXConstructExpr *CE) {
+  const auto HasListInitializedArgument = [](const CXXConstructExpr *CE) {
     for (const auto *Arg : CE->arguments()) {
       Arg = Arg->IgnoreImplicit();
 

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp
index 3f61a2d5d8bba..acf1050732779 100644
--- a/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp
@@ -218,9 +218,9 @@ void MinMaxUseInitializerListCheck::storeOptions(
 }
 
 void MinMaxUseInitializerListCheck::registerMatchers(MatchFinder *Finder) {
-  auto CreateMatcher = [](const StringRef FunctionName) {
-    auto FuncDecl = functionDecl(hasName(FunctionName));
-    auto Expression = callExpr(callee(FuncDecl));
+  const auto CreateMatcher = [](const StringRef FunctionName) {
+    const auto FuncDecl = functionDecl(hasName(FunctionName));
+    const auto Expression = callExpr(callee(FuncDecl));
 
     return callExpr(callee(FuncDecl),
                     anyOf(hasArgument(0, Expression),

diff  --git a/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
index 77add86cb85c1..d1f0b16c26468 100644
--- a/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
@@ -293,7 +293,8 @@ void PassByValueCheck::check(const MatchFinder::MatchResult 
&Result) {
   if (hasRValueOverload(Ctor, ParamDecl))
     return;
 
-  auto Diag = diag(ParamDecl->getBeginLoc(), "pass by value and use 
std::move");
+  const auto Diag =
+      diag(ParamDecl->getBeginLoc(), "pass by value and use std::move");
 
   // If we received a `const&` type, we need to rewrite the function
   // declarations.
@@ -301,7 +302,7 @@ void PassByValueCheck::check(const MatchFinder::MatchResult 
&Result) {
     // Check if we can succesfully rewrite all declarations of the constructor.
     for (const ParmVarDecl *ParmDecl : collectParamDecls(Ctor, ParamDecl)) {
       const TypeLoc ParamTL = ParmDecl->getTypeSourceInfo()->getTypeLoc();
-      auto RefTL = ParamTL.getAs<ReferenceTypeLoc>();
+      const auto RefTL = ParamTL.getAs<ReferenceTypeLoc>();
       if (RefTL.isNull()) {
         // We cannot rewrite this instance. The type is probably hidden behind
         // some `typedef`. Do not offer a fix-it in this case.
@@ -311,7 +312,7 @@ void PassByValueCheck::check(const MatchFinder::MatchResult 
&Result) {
     // Rewrite all declarations.
     for (const ParmVarDecl *ParmDecl : collectParamDecls(Ctor, ParamDecl)) {
       const TypeLoc ParamTL = ParmDecl->getTypeSourceInfo()->getTypeLoc();
-      auto RefTL = ParamTL.getAs<ReferenceTypeLoc>();
+      const auto RefTL = ParamTL.getAs<ReferenceTypeLoc>();
 
       const TypeLoc ValueTL = RefTL.getPointeeLoc();
       const CharSourceRange TypeRange = CharSourceRange::getTokenRange(

diff  --git a/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
index 6af05b11bb395..b55abf5fdae43 100644
--- a/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
@@ -49,8 +49,9 @@ void 
ReplaceAutoPtrCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 }
 
 void ReplaceAutoPtrCheck::registerMatchers(MatchFinder *Finder) {
-  auto AutoPtrDecl = recordDecl(hasName("auto_ptr"), isInStdNamespace());
-  auto AutoPtrType = hasCanonicalType(recordType(hasDeclaration(AutoPtrDecl)));
+  const auto AutoPtrDecl = recordDecl(hasName("auto_ptr"), isInStdNamespace());
+  const auto AutoPtrType =
+      hasCanonicalType(recordType(hasDeclaration(AutoPtrDecl)));
 
   //   std::auto_ptr<int> a;
   //        ^~~~~~~~~~~~~
@@ -76,7 +77,7 @@ void ReplaceAutoPtrCheck::registerMatchers(MatchFinder 
*Finder) {
   //   std::auto_ptr<int> i, j;
   //   i = j;
   //   ~~~~^
-  auto MovableArgumentMatcher =
+  const auto MovableArgumentMatcher =
       expr(isLValue(), hasType(AutoPtrType)).bind(AutoPtrOwnershipTransferId);
 
   Finder->addMatcher(
@@ -107,10 +108,11 @@ void ReplaceAutoPtrCheck::check(const 
MatchFinder::MatchResult &Result) {
     if (Range.isInvalid())
       return;
 
-    auto Diag = diag(Range.getBegin(), "use std::move to transfer ownership")
-                << FixItHint::CreateInsertion(Range.getBegin(), "std::move(")
-                << FixItHint::CreateInsertion(Range.getEnd(), ")")
-                << Inserter.createMainFileIncludeInsertion("<utility>");
+    const auto Diag =
+        diag(Range.getBegin(), "use std::move to transfer ownership")
+        << FixItHint::CreateInsertion(Range.getBegin(), "std::move(")
+        << FixItHint::CreateInsertion(Range.getEnd(), ")")
+        << Inserter.createMainFileIncludeInsertion("<utility>");
 
     return;
   }
@@ -118,11 +120,11 @@ void ReplaceAutoPtrCheck::check(const 
MatchFinder::MatchResult &Result) {
   SourceLocation AutoPtrLoc;
   if (const auto *PTL = Result.Nodes.getNodeAs<TypeLoc>(AutoPtrTokenId)) {
     auto TL = *PTL;
-    if (auto QTL = TL.getAs<QualifiedTypeLoc>())
+    if (const auto QTL = TL.getAs<QualifiedTypeLoc>())
       TL = QTL.getUnqualifiedLoc();
     //   std::auto_ptr<int> i;
     //        ^
-    if (auto Loc = TL.getAs<TemplateSpecializationTypeLoc>())
+    if (const auto Loc = TL.getAs<TemplateSpecializationTypeLoc>())
       AutoPtrLoc = Loc.getTemplateNameLoc();
   } else if (const auto *D =
                  Result.Nodes.getNodeAs<UsingDecl>(AutoPtrTokenId)) {

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/ReplaceRandomShuffleCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/ReplaceRandomShuffleCheck.cpp
index cfc546a06b40c..e59898d60d9d3 100644
--- a/clang-tools-extra/clang-tidy/modernize/ReplaceRandomShuffleCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/ReplaceRandomShuffleCheck.cpp
@@ -57,9 +57,9 @@ void ReplaceRandomShuffleCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (MatchedCallExpr->getBeginLoc().isMacroID())
     return;
 
-  auto Diag = [&] {
+  const auto Diag = [&] {
     if (MatchedCallExpr->getNumArgs() == 3) {
-      auto DiagL =
+      const auto DiagL =
           diag(MatchedCallExpr->getBeginLoc(),
                "'std::random_shuffle' has been removed in C++17; use "
                "'std::shuffle' and an alternative random mechanism instead");
@@ -68,9 +68,10 @@ void ReplaceRandomShuffleCheck::check(const 
MatchFinder::MatchResult &Result) {
           "std::mt19937(std::random_device()())");
       return DiagL;
     }
-    auto DiagL = diag(MatchedCallExpr->getBeginLoc(),
-                      "'std::random_shuffle' has been removed in C++17; use "
-                      "'std::shuffle' instead");
+    const auto DiagL =
+        diag(MatchedCallExpr->getBeginLoc(),
+             "'std::random_shuffle' has been removed in C++17; use "
+             "'std::shuffle' instead");
     DiagL << FixItHint::CreateInsertion(
         MatchedCallExpr->getRParenLoc(),
         ", std::mt19937(std::random_device()())");

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp
index 65da5b1a2b403..ef83044c0353d 100644
--- a/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp
@@ -28,7 +28,7 @@ void ReturnBracedInitListCheck::registerMatchers(MatchFinder 
*Finder) {
                                        "::std::deque", "::std::forward_list",
                                        "::std::list"))));
 
-  auto ConstructExpr =
+  const auto ConstructExpr =
       cxxConstructExpr(
           unless(anyOf(
               // Skip explicit constructor.
@@ -66,8 +66,9 @@ void ReturnBracedInitListCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (ReturnType != ConstructType)
     return;
 
-  auto Diag = diag(Loc, "avoid repeating the return type from the "
-                        "declaration; use a braced initializer list instead");
+  const auto Diag =
+      diag(Loc, "avoid repeating the return type from the "
+                "declaration; use a braced initializer list instead");
 
   const SourceRange CallParensRange =
       MatchedConstructExpr->getParenOrBraceRange();

diff  --git a/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp
index e831d0966cd58..af6f108006d16 100644
--- a/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp
@@ -175,11 +175,11 @@ AST_POLYMORPHIC_MATCHER(isValue, 
AST_POLYMORPHIC_SUPPORTED_TYPES(
 }
 
 AST_MATCHER(TypeLoc, isType) {
-  if (auto TL = Node.getAs<TypedefTypeLoc>()) {
+  if (const auto TL = Node.getAs<TypedefTypeLoc>()) {
     const auto *TD = TL.getDecl();
     return TD->getDeclName().isIdentifier() && TD->getName() == "type";
   }
-  if (auto TL = Node.getAs<DependentNameTypeLoc>())
+  if (const auto TL = Node.getAs<DependentNameTypeLoc>())
     return TL.getTypePtr()->getIdentifier()->getName() == "type";
   return false;
 }
@@ -235,10 +235,11 @@ TypeTraitsCheck::TypeTraitsCheck(StringRef Name, 
ClangTidyContext *Context)
       IgnoreMacros(Options.get("IgnoreMacros", false)) {}
 
 void TypeTraitsCheck::check(const MatchFinder::MatchResult &Result) {
-  auto EmitValueWarning = [this, &Result](const NestedNameSpecifierLoc 
&QualLoc,
+  const auto EmitValueWarning = [this,
+                                 &Result](const NestedNameSpecifierLoc 
&QualLoc,
                                           SourceLocation EndLoc) {
     SourceLocation TemplateNameEndLoc;
-    if (auto TSTL =
+    if (const auto TSTL =
             QualLoc.getAsTypeLoc().getAs<TemplateSpecializationTypeLoc>())
       TemplateNameEndLoc = Lexer::getLocForEndOfToken(
           TSTL.getTemplateNameLoc(), 0, *Result.SourceManager,
@@ -258,11 +259,12 @@ void TypeTraitsCheck::check(const 
MatchFinder::MatchResult &Result) {
         << FixItHint::CreateRemoval({QualLoc.getEndLoc(), EndLoc});
   };
 
-  auto EmitTypeWarning = [this, &Result](const NestedNameSpecifierLoc &QualLoc,
+  const auto EmitTypeWarning = [this,
+                                &Result](const NestedNameSpecifierLoc &QualLoc,
                                          SourceLocation EndLoc,
                                          SourceLocation TypenameLoc) {
     SourceLocation TemplateNameEndLoc;
-    if (auto TSTL =
+    if (const auto TSTL =
             QualLoc.getAsTypeLoc().getAs<TemplateSpecializationTypeLoc>())
       TemplateNameEndLoc = Lexer::getLocForEndOfToken(
           TSTL.getTemplateNameLoc(), 0, *Result.SourceManager,
@@ -277,7 +279,8 @@ void TypeTraitsCheck::check(const MatchFinder::MatchResult 
&Result) {
       diag(QualLoc.getBeginLoc(), "use c++14 style type templates");
       return;
     }
-    auto Diag = diag(QualLoc.getBeginLoc(), "use c++14 style type templates");
+    const auto Diag =
+        diag(QualLoc.getBeginLoc(), "use c++14 style type templates");
 
     if (TypenameLoc.isValid())
       Diag << FixItHint::CreateRemoval(TypenameLoc);
@@ -325,15 +328,15 @@ void TypeTraitsCheck::check(const 
MatchFinder::MatchResult &Result) {
 
   if (const auto *TSTL = Result.Nodes.getNodeAs<TemplateSpecializationTypeLoc>(
           "remove_cvref")) {
-    auto InnerTL = TSTL->getArgLoc(0)
-                       .getTypeSourceInfo()
-                       ->getTypeLoc()
-                       .castAs<TemplateSpecializationTypeLoc>();
+    const auto InnerTL = TSTL->getArgLoc(0)
+                             .getTypeSourceInfo()
+                             ->getTypeLoc()
+                             .castAs<TemplateSpecializationTypeLoc>();
     if (IgnoreMacros &&
         (TSTL->getBeginLoc().isMacroID() || InnerTL.getBeginLoc().isMacroID()))
       return;
 
-    auto Diag = diag(TSTL->getBeginLoc(), "use c++20 type alias");
+    const auto Diag = diag(TSTL->getBeginLoc(), "use c++20 type alias");
     Diag << FixItHint::CreateReplacement(
                 SourceRange(TSTL->getBeginLoc(), InnerTL.getLAngleLoc()),
                 "std::remove_cvref_t<")

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
index cebab03e2ab03..ca93f01e2ef9c 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
@@ -188,10 +188,10 @@ static TypeMatcher nestedIterator() {
 /// Returns a TypeMatcher that matches types declared with using
 /// declarations and which name standard iterators for standard containers.
 static TypeMatcher iteratorFromUsingDeclaration() {
-  auto HasIteratorDecl = hasDeclaration(namedDecl(hasStdIteratorName()));
+  const auto HasIteratorDecl = hasDeclaration(namedDecl(hasStdIteratorName()));
   // Unwrap the nested name specifier to test for one of the standard
   // containers.
-  auto Qualifier = hasQualifier(specifiesType(templateSpecializationType(
+  const auto Qualifier = hasQualifier(specifiesType(templateSpecializationType(
       hasDeclaration(namedDecl(hasStdContainerName(), isInStdNamespace())))));
   // the named type is what comes after the final '::' in the type. It should
   // name one of the standard iterator names.
@@ -238,14 +238,14 @@ static StatementMatcher makeDeclWithTemplateCastMatcher() 
{
   auto ST =
       substTemplateTypeParmType(hasReplacementType(equalsBoundNode("arg")));
 
-  auto ExplicitCall =
+  const auto ExplicitCall =
       anyOf(has(memberExpr(hasExplicitTemplateArgs())),
             has(ignoringImpCasts(declRefExpr(hasExplicitTemplateArgs()))));
 
-  auto TemplateArg =
+  const auto TemplateArg =
       hasTemplateArgument(0, refersToType(qualType().bind("arg")));
 
-  auto TemplateCall = callExpr(
+  const auto TemplateCall = callExpr(
       ExplicitCall,
       callee(functionDecl(TemplateArg,
                           returns(anyOf(ST, pointsTo(ST), references(ST))))));
@@ -421,7 +421,7 @@ void UseAutoCheck::replaceExpr(
           MinTypeNameLength)
     return;
 
-  auto Diag = diag(Range.getBegin(), Message);
+  const auto Diag = diag(Range.getBegin(), Message);
 
   const bool ShouldReplenishVariableName = isMultiLevelPointerToTypeLocClasses(
       TSI->getTypeLoc(), {TypeLoc::FunctionProto, TypeLoc::ConstantArray});

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp
index 6e2118787f9b4..a87811b368767 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp
@@ -62,7 +62,7 @@ void UseBoolLiteralsCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (InMacro && IgnoreMacros)
     return;
 
-  auto Diag =
+  const auto Diag =
       diag(Expression->getExprLoc(),
            "converting integer literal to bool, use bool literal instead");
 

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp
index 025290df43719..4dc78904f8bb5 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp
@@ -29,7 +29,7 @@ struct EnableIfData {
 
 AST_MATCHER(FunctionDecl, hasOtherDeclarations) {
   auto It = Node.redecls_begin();
-  auto EndIt = Node.redecls_end();
+  const auto EndIt = Node.redecls_end();
 
   if (It == EndIt)
     return false;
@@ -331,7 +331,7 @@ static std::optional<std::string> getConditionText(const 
Expr *ConditionExpr,
   if (Invalid)
     return std::nullopt;
 
-  auto AddParens = [&](StringRef Text) -> std::string {
+  const auto AddParens = [&](StringRef Text) -> std::string {
     if (isPrimaryExpression(ConditionExpr))
       return Text.str();
     return "(" + Text.str() + ")";

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
index 35e9d8096e10e..abcca3365d172 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
@@ -298,16 +298,17 @@ void UseDefaultMemberInitCheck::storeOptions(
 }
 
 void UseDefaultMemberInitCheck::registerMatchers(MatchFinder *Finder) {
-  auto Init = anyOf(
+  const auto Init = anyOf(
       initListExpr(anyOf(allOf(initCountIs(1), hasInit(0, allowedInitExpr())),
                          initCountIs(0), hasType(arrayType()))),
       allowedInitExpr());
 
-  auto CandidateField = forField(unless(anyOf(
+  const auto CandidateField = forField(unless(anyOf(
       getLangOpts().CPlusPlus20 ? unless(anything()) : isBitField(),
       hasInClassInitializer(anything()), hasParent(recordDecl(isUnion())))));
 
-  auto DefaultInit = cxxCtorInitializer(CandidateField, withInitializer(Init));
+  const auto DefaultInit =
+      cxxCtorInitializer(CandidateField, withInitializer(Init));
   auto VisibleDefaultInit =
       cxxCtorInitializer(DefaultInit, hasOnlyVisibleReferencedDecls())
           .bind("visible-init");
@@ -368,7 +369,7 @@ void UseDefaultMemberInitCheck::checkDefaultInit(
   if (StartLoc.isMacroID() && IgnoreMacros)
     return;
 
-  auto DiagDefaultMemberInitializer = [&] {
+  const auto DiagDefaultMemberInitializer = [&] {
     return diag(Field->getLocation(), "use default member initializer for %0")
            << Field;
   };
@@ -382,7 +383,7 @@ void UseDefaultMemberInitCheck::checkDefaultInit(
     return;
   }
 
-  auto Diag = DiagDefaultMemberInitializer();
+  const auto Diag = DiagDefaultMemberInitializer();
 
   const SourceLocation FieldEnd =
       Lexer::getLocForEndOfToken(Field->getSourceRange().getEnd(), 0,

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
index 5fcc03dea6b42..8ec123fc476ff 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
@@ -150,13 +150,14 @@ void UseEmplaceCheck::registerMatchers(MatchFinder 
*Finder) {
   // because this requires special treatment (it could cause performance
   // regression)
   // + match for emplace calls that should be replaced with insertion
-  auto CallPushBack =
+  const auto CallPushBack =
       cxxMemberCallExprOnContainer("push_back", ContainersWithPushBack);
-  auto CallPush = cxxMemberCallExprOnContainer("push", ContainersWithPush);
-  auto CallPushFront =
+  const auto CallPush =
+      cxxMemberCallExprOnContainer("push", ContainersWithPush);
+  const auto CallPushFront =
       cxxMemberCallExprOnContainer("push_front", ContainersWithPushFront);
 
-  auto CallEmplacy = cxxMemberCallExpr(
+  const auto CallEmplacy = cxxMemberCallExpr(
       hasDeclaration(
           functionDecl(hasAnyNameIgnoringTemplates(EmplacyFunctions))),
       on(hasTypeOrPointeeType(
@@ -195,7 +196,7 @@ void UseEmplaceCheck::registerMatchers(MatchFinder *Finder) 
{
 
   // FIXME: Discard 0/NULL (as nullptr), static inline const data members,
   // overloaded functions and template names.
-  auto SoughtConstructExpr =
+  const auto SoughtConstructExpr =
       cxxConstructExpr(
           unless(anyOf(IsCtorOfSmartPtr, HasInitList, BitFieldAsArgument,
                        InitializerListAsArgument, NewExprAsArgument,
@@ -214,7 +215,7 @@ void UseEmplaceCheck::registerMatchers(MatchFinder *Finder) 
{
       anyOf(has(cxxBindTemporaryExpr(HasConstructInitListExpr)),
             HasConstructInitListExpr);
 
-  auto MakeTuple = ignoringImplicit(
+  const auto MakeTuple = ignoringImplicit(
       callExpr(callee(expr(ignoringImplicit(declRefExpr(
                    unless(hasExplicitTemplateArgs()),
                    to(functionDecl(hasAnyName(TupleMakeFunctions))))))))
@@ -222,11 +223,11 @@ void UseEmplaceCheck::registerMatchers(MatchFinder 
*Finder) {
 
   // make_something can return type convertible to container's element type.
   // Allow the conversion only on containers of pairs.
-  auto MakeTupleCtor = ignoringImplicit(cxxConstructExpr(
+  const auto MakeTupleCtor = ignoringImplicit(cxxConstructExpr(
       has(materializeTemporaryExpr(MakeTuple)),
       hasDeclaration(cxxConstructorDecl(ofClass(hasAnyName(TupleTypes))))));
 
-  auto SoughtParam =
+  const auto SoughtParam =
       materializeTemporaryExpr(
           anyOf(has(MakeTuple), has(MakeTupleCtor), HasConstructExpr,
                 HasBracedInitListExpr,
@@ -247,7 +248,7 @@ void UseEmplaceCheck::registerMatchers(MatchFinder *Finder) 
{
                                has(initListExpr(hasType(hasCanonicalType(
                                    type(equalsBoundNode("value_type")))))))));
 
-  auto HasConstructExprWithValueTypeTypeAsLastArgument = hasLastArgument(
+  const auto HasConstructExprWithValueTypeTypeAsLastArgument = hasLastArgument(
       materializeTemporaryExpr(
           anyOf(HasConstructExprWithValueTypeType,
                 HasBracedInitListWithValueTypeType,
@@ -330,7 +331,7 @@ void UseEmplaceCheck::check(const MatchFinder::MatchResult 
&Result) {
   const auto FunctionNameSourceRange = CharSourceRange::getCharRange(
       Call->getExprLoc(), Call->getArg(0)->getExprLoc());
 
-  auto Diag =
+  const auto Diag =
       EmplacyCall
           ? diag(TemporaryExpr ? TemporaryExpr->getBeginLoc()
                  : CtorCall    ? CtorCall->getBeginLoc()

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
index 137fdb577fca2..1535fa79676ab 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
@@ -38,7 +38,7 @@ getAllNamedFields(const CXXRecordDecl *Record) {
 static llvm::SmallPtrSet<const Type *, 0>
 getAllDirectBases(const CXXRecordDecl *Record) {
   llvm::SmallPtrSet<const Type *, 0> Result;
-  for (auto Base : Record->bases()) {
+  for (const auto Base : Record->bases()) {
     // CXXBaseSpecifier.
     const auto *BaseType = Base.getTypeSourceInfo()->getType().getTypePtr();
     Result.insert(BaseType);
@@ -68,8 +68,8 @@ static bool isCopyConstructorAndCanBeDefaulted(ASTContext 
*Context,
   const auto *Param = Ctor->getParamDecl(0);
 
   // Base classes and members that have to be copied.
-  auto BasesToInit = getAllDirectBases(Record);
-  auto FieldsToInit = getAllNamedFields(Record);
+  const auto BasesToInit = getAllDirectBases(Record);
+  const auto FieldsToInit = getAllNamedFields(Record);
 
   // Ensure that all the bases are copied.
   for (const auto *Base : BasesToInit) {
@@ -128,8 +128,8 @@ static bool isCopyAssignmentAndCanBeDefaulted(ASTContext 
*Context,
   const auto *Param = Operator->getParamDecl(0);
 
   // Base classes and members that have to be copied.
-  auto BasesToInit = getAllDirectBases(Record);
-  auto FieldsToInit = getAllNamedFields(Record);
+  const auto BasesToInit = getAllDirectBases(Record);
+  const auto FieldsToInit = getAllNamedFields(Record);
 
   const auto *Compound = cast<CompoundStmt>(Operator->getBody());
 
@@ -183,9 +183,9 @@ static bool isCopyAssignmentAndCanBeDefaulted(ASTContext 
*Context,
     //   Field = Other.Field;
     // Is a BinaryOperator in non-class types, and a CXXOperatorCallExpr
     // otherwise.
-    auto LHS = memberExpr(hasObjectExpression(cxxThisExpr()),
-                          member(fieldDecl(equalsNode(Field))));
-    auto RHS = accessToFieldInVar(Field, Param);
+    const auto LHS = memberExpr(hasObjectExpression(cxxThisExpr()),
+                                member(fieldDecl(equalsNode(Field))));
+    const auto RHS = accessToFieldInVar(Field, Param);
     if (match(traverse(TK_AsIs,
                        compoundStmt(has(ignoringParenImpCasts(binaryOperation(
                            hasOperatorName("="), hasLHS(LHS), hasRHS(RHS)))))),
@@ -224,7 +224,7 @@ AST_MATCHER(CXXMethodDecl, isOutOfLine) { return 
Node.isOutOfLine(); }
 void UseEqualsDefaultCheck::registerMatchers(MatchFinder *Finder) {
   // Skip unions/union-like classes since their constructors behave 
diff erently
   // when defaulted vs. empty.
-  auto IsUnionLikeClass = recordDecl(
+  const auto IsUnionLikeClass = recordDecl(
       anyOf(isUnion(),
             has(fieldDecl(isImplicit(), hasType(cxxRecordDecl(isUnion()))))));
 
@@ -339,7 +339,7 @@ void UseEqualsDefaultCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (Location.isMacroID())
     Location = Body->getBeginLoc();
 
-  auto Diag = diag(
+  const auto Diag = diag(
       Location,
       "use '= default' to define a trivial %select{default constructor|copy "
       "constructor|destructor|copy-assignment operator}0");

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
index 8128acb055c84..3089350bbbe63 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
@@ -36,7 +36,7 @@ static BindableMatcher<Stmt> intCastExpression(bool IsSigned,
   // std::cmp_{} functions trigger a compile-time error if either LHS or RHS
   // is a non-integer type, char, enum or bool
   // (unsigned char/ signed char are Ok and can be used).
-  auto IntTypeExpr = expr(hasType(hasCanonicalType(qualType(
+  const auto IntTypeExpr = expr(hasType(hasCanonicalType(qualType(
       IsSigned ? isSignedInteger() : isUnsignedInteger(),
       unless(isActualChar()), unless(booleanType()), unless(enumType())))));
 

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp
index caa3d8c00681e..5edb443d0fca5 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp
@@ -82,9 +82,9 @@ void 
UseNodiscardCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 }
 
 void UseNodiscardCheck::registerMatchers(MatchFinder *Finder) {
-  auto FunctionObj =
+  const auto FunctionObj =
       cxxRecordDecl(hasAnyName("::std::function", "::boost::function"));
-  auto NoDiscardClassTemplateSpecialization =
+  const auto NoDiscardClassTemplateSpecialization =
       classTemplateSpecializationDecl(hasSpecializedTemplate(classTemplateDecl(
           has(cxxRecordDecl(hasAttr(attr::WarnUnusedResult))))));
 
@@ -122,8 +122,8 @@ void UseNodiscardCheck::check(const 
MatchFinder::MatchResult &Result) {
 
   ASTContext &Context = *Result.Context;
 
-  auto Diag = diag(RetLoc, "function %0 should be marked %1")
-              << MatchedDecl << NoDiscardMacro;
+  const auto Diag = diag(RetLoc, "function %0 should be marked %1")
+                    << MatchedDecl << NoDiscardMacro;
 
   // Check for the existence of the keyword being used as the 
``[[nodiscard]]``.
   if (!doesNoDiscardMacroExist(Context, NoDiscardMacro))

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
index 5fe62915c062e..f1f42aac25e2a 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.cpp
@@ -55,7 +55,7 @@ void UseNullptrCheck::registerMatchers(MatchFinder *Finder) {
       unless(hasImplicitDestinationType(
           qualType(matchers::matchesAnyListedTypeName(IgnoredTypes)))));
 
-  auto IsOrHasDescendant = [](const auto &InnerMatcher) {
+  const auto IsOrHasDescendant = [](const auto &InnerMatcher) {
     return anyOf(InnerMatcher, hasDescendant(InnerMatcher));
   };
 

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp
index da90d23f83002..8513d511717c3 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp
@@ -37,10 +37,10 @@ void 
UseOverrideCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 }
 
 void UseOverrideCheck::registerMatchers(MatchFinder *Finder) {
-  auto IgnoreDestructorMatcher =
+  const auto IgnoreDestructorMatcher =
       IgnoreDestructors ? cxxMethodDecl(unless(cxxDestructorDecl()))
                         : cxxMethodDecl();
-  auto IgnoreTemplateInstantiationsMatcher =
+  const auto IgnoreTemplateInstantiationsMatcher =
       IgnoreTemplateInstantiations
           ? cxxMethodDecl(unless(ast_matchers::isTemplateInstantiation()))
           : cxxMethodDecl();
@@ -135,8 +135,8 @@ void UseOverrideCheck::check(const MatchFinder::MatchResult 
&Result) {
                   .str();
   }
 
-  auto Diag = diag(Method->getLocation(), Message)
-              << OverrideSpelling << FinalSpelling;
+  const auto Diag = diag(Method->getLocation(), Message)
+                    << OverrideSpelling << FinalSpelling;
 
   const CharSourceRange FileRange = Lexer::makeFileCharRange(
       CharSourceRange::getTokenRange(Method->getSourceRange()), Sources,

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp
index dabb3ffeb7c2b..79aabc3e28b47 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp
@@ -84,7 +84,7 @@ findLocksInCompoundStmt(const CompoundStmt *Block,
   SmallVector<SmallVector<const VarDecl *>> LockGuardGroups;
   SmallVector<const VarDecl *> CurrentLockGuardGroup;
 
-  auto AddAndClearCurrentGroup = [&]() {
+  const auto AddAndClearCurrentGroup = [&]() {
     if (!CurrentLockGuardGroup.empty()) {
       LockGuardGroups.push_back(CurrentLockGuardGroup);
       CurrentLockGuardGroup.clear();
@@ -227,7 +227,7 @@ void UseScopedLockCheck::check(const 
MatchFinder::MatchResult &Result) {
 
 void UseScopedLockCheck::diagOnSingleLock(
     const VarDecl *LockGuard, const MatchFinder::MatchResult &Result) {
-  auto Diag = diag(LockGuard->getBeginLoc(), UseScopedLockMessage);
+  const auto Diag = diag(LockGuard->getBeginLoc(), UseScopedLockMessage);
 
   const SourceRange LockGuardTypeRange =
       getLockGuardRange(LockGuard->getTypeSourceInfo());
@@ -305,7 +305,7 @@ void UseScopedLockCheck::diagOnSourceInfo(
   const TypeLoc TL = LockGuardSourceInfo->getTypeLoc();
 
   if (const auto TTL = TL.getAs<TemplateSpecializationTypeLoc>()) {
-    auto Diag = diag(TTL.getBeginLoc(), UseScopedLockMessage);
+    const auto Diag = diag(TTL.getBeginLoc(), UseScopedLockMessage);
 
     const SourceRange LockGuardRange =
         getLockGuardNameRange(LockGuardSourceInfo);

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
index 97d71ef774924..159773be855fb 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
@@ -246,8 +246,9 @@ void UseStartsEndsWithCheck::check(const 
MatchFinder::MatchResult &Result) {
       CharSourceRange::getTokenRange(SearchExpr->getSourceRange()),
       *Result.SourceManager, Result.Context->getLangOpts());
 
-  auto Diagnostic = diag(FindExpr->getExprLoc(), "use %0 instead of %1")
-                    << ReplacementFunction->getName() << FindFun->getName();
+  const auto Diagnostic = diag(FindExpr->getExprLoc(), "use %0 instead of %1")
+                          << ReplacementFunction->getName()
+                          << FindFun->getName();
 
   // Remove everything before the function call.
   Diagnostic << FixItHint::CreateRemoval(CharSourceRange::getCharRange(

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp
index b534757e89434..89d21e097a0a8 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp
@@ -123,9 +123,9 @@ void UseStdBitCheck::check(const MatchFinder::MatchResult 
&Result) {
           Result.Nodes.getNodeAs<BinaryOperator>("has_single_bit_expr")) {
     const auto *MatchedVarDecl = Result.Nodes.getNodeAs<VarDecl>("v");
 
-    auto Diag =
+    const auto Diag =
         diag(MatchedExpr->getBeginLoc(), "use 'std::has_single_bit' instead");
-    if (auto R = MatchedExpr->getSourceRange();
+    if (const auto R = MatchedExpr->getSourceRange();
         !R.getBegin().isMacroID() && !R.getEnd().isMacroID()) {
       Diag << FixItHint::CreateReplacement(
                   MatchedExpr->getSourceRange(),
@@ -144,8 +144,9 @@ void UseStdBitCheck::check(const MatchFinder::MatchResult 
&Result) {
     const uint64_t MatchedVarSize = Context.getTypeSize(MatchedArg->getType());
     if (BitsetSize < MatchedVarSize)
       return;
-    auto Diag = diag(MatchedExpr->getBeginLoc(), "use 'std::popcount' 
instead");
-    if (auto R = MatchedExpr->getSourceRange();
+    const auto Diag =
+        diag(MatchedExpr->getBeginLoc(), "use 'std::popcount' instead");
+    if (const auto R = MatchedExpr->getSourceRange();
         !R.getBegin().isMacroID() && !R.getEnd().isMacroID()) {
       Diag << FixItHint::CreateRemoval(CharSourceRange::getTokenRange(
                   MatchedArg->getEndLoc().getLocWithOffset(1),
@@ -195,9 +196,9 @@ void UseStdBitCheck::check(const MatchFinder::MatchResult 
&Result) {
     const StringRef ReplacementFuncName = IsRotl ? "rotl" : "rotr";
     const uint64_t ReplacementShiftAmount =
         (IsRotl ? ShiftLeftAmount : ShiftRightAmount).getZExtValue();
-    auto Diag = diag(MatchedExpr->getBeginLoc(), "use 'std::%0' instead")
-                << ReplacementFuncName;
-    if (auto R = MatchedExpr->getSourceRange();
+    const auto Diag = diag(MatchedExpr->getBeginLoc(), "use 'std::%0' instead")
+                      << ReplacementFuncName;
+    if (const auto R = MatchedExpr->getSourceRange();
         R.getBegin().isMacroID() || R.getEnd().isMacroID())
       return;
 

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
index 912c2927d1aee..ad642178b7866 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
@@ -89,7 +89,7 @@ struct MatchBuilder {
 
   auto matchMathCall(const StringRef FunctionName,
                      const Matcher<Expr> &ArgumentMatcher) const {
-    auto HasAnyPrecisionName = hasAnyName(
+    const auto HasAnyPrecisionName = hasAnyName(
         FunctionName, (FunctionName + "l").str(),
         (FunctionName + "f").str()); // Support long double(l) and float(f).
     return expr(ignoreParenAndFloatingCasting(

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp
index 3464c6ace8305..12773ffc7ee6d 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp
@@ -39,7 +39,7 @@ AST_MATCHER(FunctionDecl, isOverloaded) {
   if (Name.isEmpty())
     return false;
   const DeclContext *DC = Node.getDeclContext();
-  auto LookupResult = DC->lookup(Name);
+  const auto LookupResult = DC->lookup(Name);
   size_t UniqueSignatures = 0;
   llvm::SmallPtrSet<const FunctionDecl *, 2> SeenFunctions;
   for (NamedDecl *ND : LookupResult) {
@@ -76,7 +76,7 @@ static auto getStringTypeMatcher(StringRef CharType) {
 
 static void fixReturns(const FunctionDecl *FuncDecl,
                        const DiagnosticBuilder &Diag, ASTContext &Context) {
-  auto Matches = match(
+  const auto Matches = match(
       findAll(returnStmt(hasReturnValue(ignoringParenImpCasts(
           cxxTemporaryObjectExpr(argumentCountIs(0)).bind("temp_obj_expr"))))),
       *FuncDecl->getBody(), Context);
@@ -151,7 +151,7 @@ void UseStringViewCheck::check(const 
MatchFinder::MatchResult &Result) {
           .getAsString();
   const StringRef DestReturnTypeStr = toStringViewTypeStr(DesugaredTypeStr);
 
-  auto Diag =
+  const auto Diag =
       diag(MatchedDecl->getTypeSpecStartLoc(),
            "consider using '%0' to avoid unnecessary copying and allocations")
       << DestReturnTypeStr;
@@ -188,7 +188,7 @@ void 
UseStringViewCheck::parseReplacementStringViewClass(StringRef Options) {
       {U32StringViewClassKey, &U32StringViewClass}};
   for (const auto &Option : utils::options::parseStringList(Options)) {
     const auto Split = Option.split('=');
-    if (auto It = StringClassesMap.find(Split.first);
+    if (const auto It = StringClassesMap.find(Split.first);
         It != StringClassesMap.end())
       *It->second = Split.second;
   }

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp
index ee1474d9eade1..5c6502c1b4f5e 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp
@@ -45,7 +45,7 @@ static bool matchNVarDeclStartingWith(
   const size_t N = InnerMatchers.size();
   size_t Count = 0;
 
-  auto Matches = [&](const Decl *VD) {
+  const auto Matches = [&](const Decl *VD) {
     // We don't want redundant decls in DeclStmt.
     if (Count == N)
       return false;
@@ -204,32 +204,33 @@ static auto typeOrLValueReferenceTo(
 }
 
 void UseStructuredBindingCheck::registerMatchers(MatchFinder *Finder) {
-  auto PairType = qualType(unless(isVolatileQualified()),
-                           hasUnqualifiedDesugaredType(recordType(
-                               hasDeclaration(cxxRecordDecl(isPairType())))));
+  const auto PairType =
+      qualType(unless(isVolatileQualified()),
+               hasUnqualifiedDesugaredType(
+                   recordType(hasDeclaration(cxxRecordDecl(isPairType())))));
 
   auto UnlessShouldBeIgnored =
       unless(anyOf(hasAnySpecifiersShouldBeIgnored(), isInMacro()));
 
-  auto VarInitWithFirstMember =
+  const auto VarInitWithFirstMember =
       getVarInitWithMemberMatcher(PairDeclName, "first", FirstTypeName,
                                   FirstVarDeclName, UnlessShouldBeIgnored);
-  auto VarInitWithSecondMember =
+  const auto VarInitWithSecondMember =
       getVarInitWithMemberMatcher(PairDeclName, "second", SecondTypeName,
                                   SecondVarDeclName, UnlessShouldBeIgnored);
 
-  auto RefToBindName = [&UnlessShouldBeIgnored](const StringRef &Name) {
+  const auto RefToBindName = [&UnlessShouldBeIgnored](const StringRef &Name) {
     return declRefExpr(to(varDecl(UnlessShouldBeIgnored).bind(Name)));
   };
 
-  auto HasAnyLambdaCaptureThisVar =
+  const auto HasAnyLambdaCaptureThisVar =
       [](const ast_matchers::internal::Matcher<VarDecl> &VDMatcher) {
         return compoundStmt(hasDescendant(
             lambdaExpr(hasAnyCapture(capturesVar(varDecl(VDMatcher))))));
       };
 
   // Captured structured bindings are a C++20 extension
-  auto UnlessFirstVarOrSecondVarIsCapturedByLambda =
+  const auto UnlessFirstVarOrSecondVarIsCapturedByLambda =
       getLangOpts().CPlusPlus20
           ? compoundStmt()
           : compoundStmt(unless(HasAnyLambdaCaptureThisVar(
@@ -333,9 +334,10 @@ void UseStructuredBindingCheck::check(const 
MatchFinder::MatchResult &Result) {
   const auto *ScopeBlock = 
Result.Nodes.getNodeAs<CompoundStmt>(ScopeBlockName);
 
   const auto *CFRS = Result.Nodes.getNodeAs<CXXForRangeStmt>(ForRangeStmtName);
-  auto DiagAndFix = [&BeginDS, &EndDS, &FirstVar, &SecondVar, &CFRS,
-                     this](SourceLocation DiagLoc, SourceRange ReplaceRange,
-                           TransferType TT = TT_ByVal) {
+  const auto DiagAndFix = [&BeginDS, &EndDS, &FirstVar, &SecondVar, &CFRS,
+                           this](SourceLocation DiagLoc,
+                                 SourceRange ReplaceRange,
+                                 TransferType TT = TT_ByVal) {
     const auto Prefix = [&TT]() -> StringRef {
       switch (TT) {
       case TT_ByVal:
@@ -387,8 +389,8 @@ void UseStructuredBindingCheck::check(const 
MatchFinder::MatchResult &Result) {
 
   // Check PairVar is not used except for assignment members to firstVar and
   // SecondVar.
-  if (auto AllRef = utils::decl_ref_expr::allDeclRefExprs(*PairVar, 
*ScopeBlock,
-                                                          *Result.Context);
+  if (const auto AllRef = utils::decl_ref_expr::allDeclRefExprs(
+          *PairVar, *ScopeBlock, *Result.Context);
       AllRef.size() != 2)
     return;
 

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
index 27be649c151bf..b4feecbd22a10 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
@@ -70,7 +70,7 @@ struct UnqualNameVisitor : public 
RecursiveASTVisitor<UnqualNameVisitor> {
     case TypeLoc::InjectedClassName:
     case TypeLoc::Record:
     case TypeLoc::Enum: {
-      auto TTL = TL.getAs<TagTypeLoc>();
+      const auto TTL = TL.getAs<TagTypeLoc>();
       const auto *T = TTL.getTypePtr();
       if (T->getKeyword() != ElaboratedTypeKeyword::None ||
           TTL.getQualifierLoc())
@@ -80,7 +80,7 @@ struct UnqualNameVisitor : public 
RecursiveASTVisitor<UnqualNameVisitor> {
       break;
     }
     case TypeLoc::TemplateSpecialization: {
-      auto TTL = TL.getAs<TemplateSpecializationTypeLoc>();
+      const auto TTL = TL.getAs<TemplateSpecializationTypeLoc>();
       const auto *T = TTL.getTypePtr();
       if (T->getKeyword() != ElaboratedTypeKeyword::None ||
           TTL.getQualifierLoc())
@@ -90,7 +90,7 @@ struct UnqualNameVisitor : public 
RecursiveASTVisitor<UnqualNameVisitor> {
       break;
     }
     case TypeLoc::Typedef: {
-      auto TTL = TL.getAs<TypedefTypeLoc>();
+      const auto TTL = TL.getAs<TypedefTypeLoc>();
       const auto *T = TTL.getTypePtr();
       if (T->getKeyword() != ElaboratedTypeKeyword::None ||
           TTL.getQualifierLoc())
@@ -100,7 +100,7 @@ struct UnqualNameVisitor : public 
RecursiveASTVisitor<UnqualNameVisitor> {
       break;
     }
     case TypeLoc::Using: {
-      auto TTL = TL.getAs<UsingTypeLoc>();
+      const auto TTL = TL.getAs<UsingTypeLoc>();
       const auto *T = TTL.getTypePtr();
       if (T->getKeyword() != ElaboratedTypeKeyword::None ||
           TTL.getQualifierLoc())
@@ -478,7 +478,7 @@ void UseTrailingReturnTypeCheck::storeOptions(
 }
 
 void UseTrailingReturnTypeCheck::registerMatchers(MatchFinder *Finder) {
-  auto F =
+  const auto F =
       functionDecl(
           unless(anyOf(
               hasTrailingReturn(), returns(voidType()), cxxConversionDecl(),
@@ -544,7 +544,7 @@ void UseTrailingReturnTypeCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (!TSI)
     return;
 
-  auto FTL = TSI->getTypeLoc().IgnoreParens().getAs<FunctionTypeLoc>();
+  const auto FTL = TSI->getTypeLoc().IgnoreParens().getAs<FunctionTypeLoc>();
   if (!FTL) {
     // FIXME: This may happen if we have __attribute__((...)) on the function.
     // We abort for now. Remove this when the function type location gets

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp
index 9623c885534a6..73d602b7e4e40 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp
@@ -106,7 +106,7 @@ void UseTransparentFunctorsCheck::check(
   if (ArgNum == FunctorParentType->template_arguments().size())
     return;
   const TemplateArgumentLoc FunctorLoc = FunctorParentLoc.getArgLoc(ArgNum);
-  auto FunctorTypeLoc = getInnerTypeLocAs<TemplateSpecializationTypeLoc>(
+  const auto FunctorTypeLoc = getInnerTypeLocAs<TemplateSpecializationTypeLoc>(
       FunctorLoc.getTypeSourceInfo()->getTypeLoc());
   if (FunctorTypeLoc.isNull())
     return;

diff  --git 
a/clang-tools-extra/clang-tidy/modernize/UseUncaughtExceptionsCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseUncaughtExceptionsCheck.cpp
index ae61ffa3ba863..c382334925be5 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseUncaughtExceptionsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseUncaughtExceptionsCheck.cpp
@@ -29,7 +29,7 @@ void UseUncaughtExceptionsCheck::registerMatchers(MatchFinder 
*Finder) {
           .bind("decl_ref_expr"),
       this);
 
-  auto DirectCallToUncaughtException = callee(expr(ignoringImpCasts(
+  const auto DirectCallToUncaughtException = callee(expr(ignoringImpCasts(
       declRefExpr(hasDeclaration(functionDecl(hasName(MatchText)))))));
 
   // CallExpr: warning, fix-it.
@@ -69,8 +69,9 @@ void UseUncaughtExceptionsCheck::check(const 
MatchFinder::MatchResult &Result) {
     EndLoc = U->getNameInfo().getEndLoc();
   }
 
-  auto Diag = diag(BeginLoc, "'std::uncaught_exception' is deprecated, use "
-                             "'std::uncaught_exceptions' instead");
+  const auto Diag =
+      diag(BeginLoc, "'std::uncaught_exception' is deprecated, use "
+                     "'std::uncaught_exceptions' instead");
 
   if (!BeginLoc.isMacroID()) {
     StringRef Text =

diff  --git a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp 
b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
index cbb3babe9d472..504a2c40bcfff 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
@@ -456,10 +456,10 @@ void UseUsingCheck::check(const MatchFinder::MatchResult 
&Result) {
     LastReplacementEnd = ReplaceRange.getEnd().getLocWithOffset(Offset);
   }
 
-  auto Diag = diag(ReplaceRange.getBegin(), UseUsingWarning);
+  const auto Diag = diag(ReplaceRange.getBegin(), UseUsingWarning);
 
   // If typedef contains a full tag declaration, extract its full text.
-  auto LastTagDeclRange = LastTagDeclRanges.find(ParentDecl);
+  const auto LastTagDeclRange = LastTagDeclRanges.find(ParentDecl);
   if (LastTagDeclRange != LastTagDeclRanges.end() &&
       LastTagDeclRange->second.isValid() &&
       ReplaceRange.fullyContains(LastTagDeclRange->second)) {


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

Reply via email to