[clang-tools-extra] 0b71b1a - [clang-tidy][NFC] Apply const-correctness for auto 5/N (#213843)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 4 06:35:46 PDT 2026
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)) {
More information about the cfe-commits
mailing list