Author: Baranov Victor Date: 2026-08-04T16:33:52+03:00 New Revision: ddc8e4bb252f31ca433295facbead45f932413ba
URL: https://github.com/llvm/llvm-project/commit/ddc8e4bb252f31ca433295facbead45f932413ba DIFF: https://github.com/llvm/llvm-project/commit/ddc8e4bb252f31ca433295facbead45f932413ba.diff LOG: [clang-tidy][NFC] Apply const-correctness for auto 3/N (#213841) Added: Modified: clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.cpp clang-tools-extra/clang-tidy/bugprone/BitwisePointerCastCheck.cpp clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp clang-tools-extra/clang-tidy/bugprone/CopyConstructorInitCheck.cpp clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp clang-tools-extra/clang-tidy/bugprone/IncorrectEnableIfCheck.cpp clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp clang-tools-extra/clang-tidy/bugprone/MisleadingSetterOfReferenceCheck.cpp clang-tools-extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp clang-tools-extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp clang-tools-extra/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.cpp clang-tools-extra/clang-tidy/bugprone/MultipleStatementMacroCheck.cpp clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp clang-tools-extra/clang-tidy/bugprone/NondeterministicPointerIterationOrderCheck.cpp clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp clang-tools-extra/clang-tidy/bugprone/SizeofContainerCheck.cpp clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp clang-tools-extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp clang-tools-extra/clang-tidy/bugprone/UnhandledExceptionAtNewCheck.cpp clang-tools-extra/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.cpp clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp index 8b78b5a50f0c8..2f260c36155ff 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp @@ -314,7 +314,8 @@ void ArgumentCommentCheck::checkCallArgs(ASTContext *Ctx, if ((NumArgs == 0) || (IgnoreSingleArgument && NumArgs == 1)) return; - auto MakeFileCharRange = [Ctx](SourceLocation Begin, SourceLocation End) { + const auto MakeFileCharRange = [Ctx](SourceLocation Begin, + SourceLocation End) { return Lexer::makeFileCharRange(CharSourceRange::getCharRange(Begin, End), Ctx->getSourceManager(), Ctx->getLangOpts()); diff --git a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp index 574ccfc255a53..b7c7a3196d787 100644 --- a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp @@ -103,13 +103,13 @@ void AssertSideEffectCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { } void AssertSideEffectCheck::registerMatchers(MatchFinder *Finder) { - auto IgnoredFunctionsMatcher = + const auto IgnoredFunctionsMatcher = matchers::matchesAnyListedRegexName(IgnoredFunctions); - auto DescendantWithSideEffect = + const auto DescendantWithSideEffect = traverse(TK_AsIs, hasDescendant(expr(hasSideEffect( CheckFunctionCalls, IgnoredFunctionsMatcher)))); - auto ConditionWithSideEffect = hasCondition(DescendantWithSideEffect); + const auto ConditionWithSideEffect = hasCondition(DescendantWithSideEffect); Finder->addMatcher( stmt( anyOf(conditionalOperator(ConditionWithSideEffect), diff --git a/clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.cpp index 546d66f9c1452..f0ded3d9e4562 100644 --- a/clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.cpp @@ -52,8 +52,8 @@ AST_MATCHER_P(Expr, conditionValueCanPropagateFrom, // Ignore implicit casts (including C++ conversion member calls) but not parens. AST_MATCHER_P(Expr, ignoringImplicitAsWritten, ast_matchers::internal::Matcher<Expr>, InnerMatcher) { - auto IgnoreImplicitMemberCallSingleStep = [](Expr *E) { - if (auto *C = dyn_cast<CXXMemberCallExpr>(E)) { + const auto IgnoreImplicitMemberCallSingleStep = [](Expr *E) { + if (const auto *C = dyn_cast<CXXMemberCallExpr>(E)) { Expr *ExprNode = C->getImplicitObjectArgument(); if (ExprNode->getSourceRange() == E->getSourceRange()) return ExprNode; @@ -84,8 +84,9 @@ void AssignmentInSelectionStatementCheck::registerMatchers( auto AssignOpFromEmbeddedExpr = expr(ignoringParenImpCasts( conditionValueCanPropagateFrom(AssignOpMaybeParens))); - auto CondExprWithAssign = anyOf(AssignOpNoParens, AssignOpFromEmbeddedExpr); - auto OpCondExprWithAssign = + const auto CondExprWithAssign = + anyOf(AssignOpNoParens, AssignOpFromEmbeddedExpr); + const auto OpCondExprWithAssign = anyOf(AssignOpMaybeParens, AssignOpFromEmbeddedExpr); // In these cases "single primary expression" is possible. @@ -102,7 +103,7 @@ void AssignmentInSelectionStatementCheck::registerMatchers( hasAnyOperatorName("&&", "||"), eachOf(hasLHS(OpCondExprWithAssign), hasRHS(OpCondExprWithAssign))); - auto FoundSelectionStmt = + const auto FoundSelectionStmt = stmt(anyOf(FoundControlStmt, FoundConditionalOperator, FoundLogicalOp)) .bind("parent"); diff --git a/clang-tools-extra/clang-tidy/bugprone/BitwisePointerCastCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/BitwisePointerCastCheck.cpp index a9e7ae8734677..b8b4948665b0f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/BitwisePointerCastCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/BitwisePointerCastCheck.cpp @@ -15,7 +15,7 @@ namespace clang::tidy::bugprone { void BitwisePointerCastCheck::registerMatchers(MatchFinder *Finder) { if (getLangOpts().CPlusPlus20) { - auto IsPointerType = refersToType(qualType(isAnyPointer())); + const auto IsPointerType = refersToType(qualType(isAnyPointer())); Finder->addMatcher(callExpr(hasDeclaration(functionDecl(allOf( hasName("::std::bit_cast"), hasTemplateArgument(0, IsPointerType), @@ -24,7 +24,7 @@ void BitwisePointerCastCheck::registerMatchers(MatchFinder *Finder) { this); } - auto IsDoublePointerType = + const auto IsDoublePointerType = hasType(qualType(pointsTo(qualType(isAnyPointer())))); Finder->addMatcher(callExpr(hasArgument(0, IsDoublePointerType), hasArgument(1, IsDoublePointerType), diff --git a/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp index 588f9bfe076df..ad6b12c1d7d2f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp @@ -402,7 +402,7 @@ void BranchCloneCheck::check(const MatchFinder::MatchResult &Result) { Branches.back().push_back(S); } - auto *End = Branches.end(); + const auto *End = Branches.end(); auto *BeginCurrent = Branches.begin(); while (BeginCurrent < End) { if (isFallthroughSwitchBranch(*BeginCurrent)) { diff --git a/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp index 5adf8f97ee8f0..a78af8aa2fea3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.cpp @@ -83,11 +83,11 @@ void CapturingThisInMemberVariableCheck::storeOptions( } void CapturingThisInMemberVariableCheck::registerMatchers(MatchFinder *Finder) { - auto IsStdFunctionField = + const auto IsStdFunctionField = fieldDecl(hasType(cxxRecordDecl( matchers::matchesAnyListedRegexName(FunctionWrapperTypes)))) .bind("field"); - auto CaptureThis = lambdaCapture(anyOf( + const auto CaptureThis = lambdaCapture(anyOf( // [this] capturesThis(), // [self = this] @@ -102,7 +102,7 @@ void CapturingThisInMemberVariableCheck::registerMatchers(MatchFinder *Finder) { hasAnyArgument(cxxThisExpr())) .bind("bind"); - auto IsInitWithLambdaOrBind = + const auto IsInitWithLambdaOrBind = anyOf(IsLambdaCapturingThis, IsBindCapturingThis, cxxConstructExpr(hasArgument( 0, anyOf(IsLambdaCapturingThis, IsBindCapturingThis)))); diff --git a/clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp index 91290c2850c57..8b1fbe04fb1eb 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp @@ -34,10 +34,10 @@ static constexpr StringRef ErrorMsg = void ComparePointerToMemberVirtualFunctionCheck::registerMatchers( MatchFinder *Finder) { - auto DirectMemberVirtualFunctionPointer = unaryOperator( + const auto DirectMemberVirtualFunctionPointer = unaryOperator( allOf(hasOperatorName("&"), hasUnaryOperand(declRefExpr(to(cxxMethodDecl(isVirtual())))))); - auto IndirectMemberPointer = + const auto IndirectMemberPointer = ignoringImpCasts(declRefExpr().bind("indirect_member_pointer")); Finder->addMatcher( diff --git a/clang-tools-extra/clang-tidy/bugprone/CopyConstructorInitCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/CopyConstructorInitCheck.cpp index ccbc86ae74cc6..5809dcfb4bd1c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CopyConstructorInitCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/CopyConstructorInitCheck.cpp @@ -87,9 +87,10 @@ void CopyConstructorInitCheck::check(const MatchFinder::MatchResult &Result) { if (!HasRelevantBaseInit) return; - auto Diag = diag(Ctor->getLocation(), - "calling a base constructor other than the copy constructor") - << SafeFixIts; + const auto Diag = + diag(Ctor->getLocation(), + "calling a base constructor other than the copy constructor") + << SafeFixIts; if (FixItInitList.empty() || ParamName.empty() || ShouldNotDoFixit) return; diff --git a/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp index 8c8a9020011b0..13d9750234b0d 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp @@ -129,8 +129,8 @@ void CrtpConstructorAccessibilityCheck::check( << HintFriend; } - auto WithFriendHintIfNeeded = [&](const DiagnosticBuilder &Diag, - bool NeedsFriend) { + const auto WithFriendHintIfNeeded = [&](const DiagnosticBuilder &Diag, + bool NeedsFriend) { if (NeedsFriend) Diag << HintFriend; }; diff --git a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp index e95af89375dc8..0e0f3b95fffdd 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp @@ -278,7 +278,7 @@ struct ConversionSequence { /// the conversion sequence. This method does **NOT** return Begin and End. SmallVector<QualType, 4> getInvolvedTypesInSequence() const { SmallVector<QualType, 4> Ret; - auto EmplaceIfDifferent = [&Ret](QualType QT) { + const auto EmplaceIfDifferent = [&Ret](QualType QT) { if (QT.isNull()) return; if (Ret.empty()) @@ -976,7 +976,7 @@ approximateStandardConversionSequence(const TheCheck &Check, QualType From, // Get out the qualifiers of the original type. This will always be // re-applied to the WorkType to ensure it is the same qualification as the // original From was. - auto FastQualifiersToApply = static_cast<unsigned>( + const auto FastQualifiersToApply = static_cast<unsigned>( From.split().Quals.getAsOpaqueValue() & Qualifiers::FastMask); // LValue->RValue is irrelevant for the check, because it is a thing to be @@ -1595,7 +1595,7 @@ using ParamToSmallPtrSetMap = template <typename MapTy, typename ElemTy> static bool lazyMapOfSetsIntersectionExists(const MapTy &Map, const ElemTy &E1, const ElemTy &E2) { - auto E1Iterator = Map.find(E1); + const auto E1Iterator = Map.find(E1); auto E2Iterator = Map.find(E2); if (E1Iterator == Map.end() || E2Iterator == Map.end()) return false; @@ -1637,7 +1637,7 @@ class AppearsInSameExpr : public RecursiveASTVisitor<AppearsInSameExpr> { } bool TraverseStmt(Stmt *S, DataRecursionQueue *Queue = nullptr) { - if (auto *E = dyn_cast_or_null<Expr>(S)) { + if (const auto *E = dyn_cast_or_null<Expr>(S)) { bool RootSetInCurrentStackFrame = false; if (!CurrentExprOnlyTreeRoot) { CurrentExprOnlyTreeRoot = E; @@ -1678,7 +1678,7 @@ class PassedToSameFunction { public: void setup(const FunctionDecl *FD) { - auto ParamsAsArgsInFnCalls = + const auto ParamsAsArgsInFnCalls = match(functionDecl(forEachDescendant( callExpr(forEachArgumentWithParam( paramRefExpr(), parmVarDecl().bind("passed-to"))) @@ -1718,7 +1718,7 @@ class AccessedSameMemberOf { public: void setup(const FunctionDecl *FD) { - auto MembersCalledOnParams = match( + const auto MembersCalledOnParams = match( functionDecl(forEachDescendant( memberExpr(hasObjectExpression(paramRefExpr())).bind("mem-expr"))), *FD, FD->getASTContext()); @@ -1745,9 +1745,9 @@ class Returned { public: void setup(const FunctionDecl *FD) { // TODO: Handle co_return. - auto ParamReturns = match(functionDecl(forEachDescendant( - returnStmt(hasReturnValue(paramRefExpr())))), - *FD, FD->getASTContext()); + const auto ParamReturns = match(functionDecl(forEachDescendant(returnStmt( + hasReturnValue(paramRefExpr())))), + *FD, FD->getASTContext()); for (const auto &Match : ParamReturns) { const auto *ReturnedParam = Match.getNodeAs<ParmVarDecl>("param"); assert(ReturnedParam); @@ -2001,7 +2001,7 @@ struct FormattedConversionSequence { Trivial = false; } - auto AddType = [&](StringRef ToAdd) { + const auto AddType = [&](StringRef ToAdd) { if (LastAddedType != ToAdd && ToAdd != SeqEndTypeStr) { OS << " -> '" << ToAdd << "'"; LastAddedType = ToAdd.str(); @@ -2217,8 +2217,8 @@ void EasilySwappableParametersCheck::check( DiagText = "%0 adjacent parameters of %1 of similar type ('%2') are " "easily swapped by mistake"; - auto Diag = diag(First->getOuterLocStart(), DiagText) - << static_cast<unsigned>(R.NumParamsChecked) << FD; + const auto Diag = diag(First->getOuterLocStart(), DiagText) + << static_cast<unsigned>(R.NumParamsChecked) << FD; if (!NeedsAnyTypeNote) Diag << FirstParamTypeAsWritten; @@ -2281,7 +2281,7 @@ void EasilySwappableParametersCheck::check( ExplicitlyPrintCommonType = true; } - auto Diag = + const auto Diag = diag(LVar->getOuterLocStart(), DiagText, DiagnosticIDs::Note) << LTypeStr << RTypeStr; if (ExplicitlyPrintCommonType) @@ -2312,7 +2312,7 @@ void EasilySwappableParametersCheck::check( DiagText = "'%0' and '%1' may be implicitly converted: %2, %3"; { - auto Diag = + const auto Diag = diag(RVar->getOuterLocStart(), DiagText, DiagnosticIDs::Note) << LTypeStr << RTypeStr; diff --git a/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp index 9e5e1219b6387..bf721bac658b5 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp @@ -76,13 +76,13 @@ std::optional<TraversalKind> EmptyCatchCheck::getCheckTraversalKind() const { } void EmptyCatchCheck::registerMatchers(MatchFinder *Finder) { - auto AllowedNamedExceptionDecl = namedDecl( + const auto AllowedNamedExceptionDecl = namedDecl( matchers::matchesAnyListedRegexName(AllowEmptyCatchForExceptions)); auto AllowedNamedExceptionTypes = qualType(anyOf(hasDeclaration(AllowedNamedExceptionDecl), references(AllowedNamedExceptionDecl), pointsTo(AllowedNamedExceptionDecl))); - auto IgnoredExceptionType = + const auto IgnoredExceptionType = qualType(anyOf(AllowedNamedExceptionTypes, hasCanonicalType(AllowedNamedExceptionTypes))); diff --git a/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp index 7d23e2d2b5630..ea2cbbc580d32 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp @@ -106,7 +106,7 @@ void ExceptionEscapeCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { } void ExceptionEscapeCheck::registerMatchers(MatchFinder *Finder) { - auto MatchIf = [](bool Enabled, const auto &Matcher) { + const auto MatchIf = [](bool Enabled, const auto &Matcher) { const ast_matchers::internal::Matcher<FunctionDecl> Nothing = unless(anything()); return Enabled ? Matcher : Nothing; diff --git a/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp index 65578f7d81254..476bb25b77cac 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp @@ -143,7 +143,7 @@ void ForwardDeclarationNamespaceCheck::onEndOfTranslationUnit() { } // Check if a definition in another namespace exists. const auto DeclName = CurDecl->getName(); - auto It = DeclNameToDefinitions.find(DeclName); + const auto It = DeclNameToDefinitions.find(DeclName); if (It == DeclNameToDefinitions.end()) continue; // No definition in this translation unit, we can skip it. // Make a warning for each definition with the same name (in other diff --git a/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp index 8d4d9d67f17f4..9e2214a5c7c82 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp @@ -17,7 +17,7 @@ namespace clang::tidy::bugprone { namespace { // Check if the given type is related to std::enable_if. AST_MATCHER(QualType, isEnableIf) { - auto CheckTemplate = [](const TemplateSpecializationType *Spec) { + const auto CheckTemplate = [](const TemplateSpecializationType *Spec) { if (!Spec) return false; @@ -58,7 +58,7 @@ AST_MATCHER(TemplateDecl, hasAssociatedConstraints) { } // namespace void ForwardingReferenceOverloadCheck::registerMatchers(MatchFinder *Finder) { - auto ForwardingRefParm = + const auto ForwardingRefParm = parmVarDecl( hasType(qualType(rValueReferenceType(), references(templateTypeParmType(hasDeclaration( diff --git a/clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp index 7c259a6199832..126dc9ba36192 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp @@ -111,10 +111,10 @@ void ImplicitWideningOfMultiplicationResultCheck::handleImplicitCastExpr( << Ty << E->getType(); { - auto Diag = diag(E->getBeginLoc(), - "make conversion explicit to silence this warning", - DiagnosticIDs::Note) - << E->getSourceRange(); + const auto Diag = diag(E->getBeginLoc(), + "make conversion explicit to silence this warning", + DiagnosticIDs::Note) + << E->getSourceRange(); const SourceLocation EndLoc = Lexer::getLocForEndOfToken( E->getEndLoc(), 0, *Result->SourceManager, getLangOpts()); if (ShouldUseCXXStaticCast) @@ -146,9 +146,10 @@ void ImplicitWideningOfMultiplicationResultCheck::handleImplicitCastExpr( } { - auto Diag = diag(E->getBeginLoc(), "perform multiplication in a wider type", - DiagnosticIDs::Note) - << LHS->getSourceRange(); + const auto Diag = + diag(E->getBeginLoc(), "perform multiplication in a wider type", + DiagnosticIDs::Note) + << LHS->getSourceRange(); if (ShouldUseCXXStaticCast) Diag << FixItHint::CreateInsertion(LHS->getBeginLoc(), @@ -225,10 +226,10 @@ void ImplicitWideningOfMultiplicationResultCheck::handlePointerOffsetting( << IndexExprType << TyAsString; { - auto Diag = diag(IndexExpr->getBeginLoc(), - "make conversion explicit to silence this warning", - DiagnosticIDs::Note) - << IndexExpr->getSourceRange(); + const auto Diag = diag(IndexExpr->getBeginLoc(), + "make conversion explicit to silence this warning", + DiagnosticIDs::Note) + << IndexExpr->getSourceRange(); const SourceLocation EndLoc = Lexer::getLocForEndOfToken( IndexExpr->getEndLoc(), 0, *Result->SourceManager, getLangOpts()); if (ShouldUseCXXStaticCast) @@ -244,7 +245,7 @@ void ImplicitWideningOfMultiplicationResultCheck::handlePointerOffsetting( } { - auto Diag = + const auto Diag = diag(IndexExpr->getBeginLoc(), "perform multiplication in a wider type", DiagnosticIDs::Note) << LHS->getSourceRange(); diff --git a/clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp index bdb91b1ed0f4d..dee0b1beccb68 100644 --- a/clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp @@ -31,7 +31,7 @@ AST_MATCHER(CXXOperatorCallExpr, isPrePostOperator) { } // namespace void IncDecInConditionsCheck::registerMatchers(MatchFinder *Finder) { - auto OperatorMatcher = expr( + const auto OperatorMatcher = expr( anyOf(binaryOperator(anyOf(isComparisonOperator(), isLogicalOperator())), cxxOperatorCallExpr(isComparisonOperator()))); diff --git a/clang-tools-extra/clang-tidy/bugprone/IncorrectEnableIfCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/IncorrectEnableIfCheck.cpp index 5a592e10a599e..ebe45f367ae2f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/IncorrectEnableIfCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/IncorrectEnableIfCheck.cpp @@ -54,9 +54,9 @@ void IncorrectEnableIfCheck::check(const MatchFinder::MatchResult &Result) { const SourceLocation RAngleLoc = SM.getExpansionLoc(EnableIfSpecializationLoc->getRAngleLoc()); - auto Diag = diag(EnableIf->getBeginLoc(), - "incorrect std::enable_if usage detected; use " - "'typename std::enable_if<...>::type'"); + const auto Diag = diag(EnableIf->getBeginLoc(), + "incorrect std::enable_if usage detected; use " + "'typename std::enable_if<...>::type'"); if (!getLangOpts().CPlusPlus20 && EnableIfSpecializationLoc->getElaboratedKeywordLoc().isInvalid()) { Diag << FixItHint::CreateInsertion(EnableIfSpecializationLoc->getBeginLoc(), diff --git a/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp index a4965c298adbc..1ba3297c023cd 100644 --- a/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp @@ -26,10 +26,10 @@ AST_MATCHER(FloatingLiteral, floatHalf) { void IncorrectRoundingsCheck::registerMatchers(MatchFinder *MatchFinder) { // Match a floating literal with value 0.5. - auto FloatHalf = floatLiteral(floatHalf()); + const auto FloatHalf = floatLiteral(floatHalf()); // Match a floating point expression. - auto FloatType = expr(hasType(realFloatingPointType())); + const auto FloatType = expr(hasType(realFloatingPointType())); // Find expressions of cast to int of the sum of a floating point expression // and 0.5. diff --git a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp index 65efb9adff3ac..09d84391d8ba3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp @@ -81,7 +81,7 @@ class FindEnumMember : public TypeVisitor<FindEnumMember, bool> { const RecordDecl *RD = T->getDecl()->getDefinition(); if (!RD || RD->isUnion()) return false; - auto VisitField = [this](const FieldDecl *F) { + const auto VisitField = [this](const FieldDecl *F) { return Visit(F->getType().getTypePtr()); }; return llvm::any_of(RD->fields(), VisitField); @@ -110,7 +110,7 @@ void InvalidEnumDefaultInitializationCheck::registerMatchers( enumDecl(isCompleteAndHasNoZeroValue(), unless(matchers::matchesAnyListedRegexName(IgnoredEnums))) .bind("enum"))); - auto EnumOrArrayOfEnum = qualType(hasUnqualifiedDesugaredType( + const auto EnumOrArrayOfEnum = qualType(hasUnqualifiedDesugaredType( anyOf(EnumWithoutZeroValue, arrayType(hasElementType(qualType( hasUnqualifiedDesugaredType(EnumWithoutZeroValue))))))); diff --git a/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp index 11e2d2e6a72f4..c6bf0fbbc1f54 100644 --- a/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/LambdaFunctionNameCheck.cpp @@ -94,7 +94,7 @@ void LambdaFunctionNameCheck::check(const MatchFinder::MatchResult &Result) { if (IgnoreMacros) return; - auto ER = + const auto ER = Result.SourceManager->getImmediateExpansionRange(E->getLocation()); if (SuppressMacroExpansions.contains(ER.getAsRange())) { // This is a macro expansion for which we should not warn. diff --git a/clang-tools-extra/clang-tidy/bugprone/MisleadingSetterOfReferenceCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MisleadingSetterOfReferenceCheck.cpp index ff7f3020102ad..36715e662e71c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MisleadingSetterOfReferenceCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MisleadingSetterOfReferenceCheck.cpp @@ -15,25 +15,25 @@ using namespace clang::ast_matchers; namespace clang::tidy::bugprone { void MisleadingSetterOfReferenceCheck::registerMatchers(MatchFinder *Finder) { - auto RefField = fieldDecl(hasType(hasCanonicalType(referenceType( - pointee(equalsBoundNode("type")))))) - .bind("member"); - auto AssignLHS = memberExpr( + const auto RefField = fieldDecl(hasType(hasCanonicalType(referenceType( + pointee(equalsBoundNode("type")))))) + .bind("member"); + const auto AssignLHS = memberExpr( hasObjectExpression(ignoringParenCasts(cxxThisExpr())), member(RefField)); - auto DerefOperand = expr(ignoringParenCasts( + const auto DerefOperand = expr(ignoringParenCasts( declRefExpr(to(parmVarDecl(equalsBoundNode("parm")))))); - auto AssignRHS = expr(ignoringParenCasts( + const auto AssignRHS = expr(ignoringParenCasts( unaryOperator(hasOperatorName("*"), hasUnaryOperand(DerefOperand)))); - auto BinaryOpAssign = binaryOperator(hasOperatorName("="), hasLHS(AssignLHS), - hasRHS(AssignRHS)); - auto CXXOperatorCallAssign = cxxOperatorCallExpr( + const auto BinaryOpAssign = binaryOperator( + hasOperatorName("="), hasLHS(AssignLHS), hasRHS(AssignRHS)); + const auto CXXOperatorCallAssign = cxxOperatorCallExpr( hasOverloadedOperatorName("="), hasLHS(AssignLHS), hasRHS(AssignRHS)); - auto SetBody = + const auto SetBody = compoundStmt(statementCountIs(1), anyOf(has(BinaryOpAssign), has(CXXOperatorCallAssign))); - auto BadSetFunction = + const auto BadSetFunction = cxxMethodDecl( parameterCountIs(1), hasParameter( diff --git a/clang-tools-extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp index 5925e28eed734..968cb4c0cc73a 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp @@ -96,7 +96,7 @@ void MisplacedOperatorInStrlenInAllocCheck::check( CharSourceRange::getTokenRange(BinOp->getRHS()->getSourceRange()), *Result.SourceManager, getLangOpts()); - auto Hint = FixItHint::CreateReplacement( + const auto Hint = FixItHint::CreateReplacement( StrLen->getSourceRange(), (StrLenBegin + LHSText + StrLenEnd + " + " + RHSText).str()); diff --git a/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp index c8679e45b299a..051f0b569c66b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp @@ -204,9 +204,9 @@ void MissingEndComparisonCheck::check(const MatchFinder::MatchResult &Result) { if (!EndExprText) return; - auto Diag = diag(BoolOp->getBeginLoc(), - "result of standard algorithm used as 'bool'; did you " - "mean to compare with the end iterator?"); + const auto Diag = diag(BoolOp->getBeginLoc(), + "result of standard algorithm used as 'bool'; did you " + "mean to compare with the end iterator?"); if (EndExprText->empty()) return; diff --git a/clang-tools-extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp index 7e545096aed67..eb84c76cf78db 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp @@ -79,7 +79,7 @@ static void replaceMoveWithForward(const UnresolvedLookupExpr *Callee, void MoveForwardingReferenceCheck::registerMatchers(MatchFinder *Finder) { // Matches a ParmVarDecl for a forwarding reference, i.e. a non-const rvalue // reference of a function template parameter type. - auto ForwardingReferenceParmMatcher = + const auto ForwardingReferenceParmMatcher = parmVarDecl( hasType(qualType(rValueReferenceType(), references(templateTypeParmType(hasDeclaration( @@ -127,10 +127,11 @@ void MoveForwardingReferenceCheck::check( if (!llvm::is_contained(*Params, TypeParmDecl)) return; - auto Diag = diag(CallMove->getExprLoc(), - "forwarding reference passed to std::move(), which may " - "unexpectedly cause lvalues to be moved; use " - "std::forward() instead"); + const auto Diag = + diag(CallMove->getExprLoc(), + "forwarding reference passed to std::move(), which may " + "unexpectedly cause lvalues to be moved; use " + "std::forward() instead"); replaceMoveWithForward(UnresolvedLookup, ParmVar, TypeParmDecl, Diag, *Result.Context); diff --git a/clang-tools-extra/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.cpp index b81d2b438d58d..aef000c66eb3b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.cpp @@ -83,16 +83,19 @@ void MultipleNewInOneExpressionCheck::registerMatchers(MatchFinder *Finder) { auto BadAllocReferenceType = referenceType(pointee(BadAllocType)); auto ExceptionReferenceType = referenceType(pointee(ExceptionType)); - auto CatchBadAllocType = + const auto CatchBadAllocType = qualType(hasCanonicalType(anyOf(BadAllocType, BadAllocReferenceType, ExceptionType, ExceptionReferenceType))); - auto BadAllocCatchingTryBlock = cxxTryStmt(hasHandlerFor(CatchBadAllocType)); - - auto NewExprMayThrow = cxxNewExpr(mayThrow()); - auto HasNewExpr1 = expr(anyOf(NewExprMayThrow.bind("new1"), - hasDescendant(NewExprMayThrow.bind("new1")))); - auto HasNewExpr2 = expr(anyOf(NewExprMayThrow.bind("new2"), - hasDescendant(NewExprMayThrow.bind("new2")))); + const auto BadAllocCatchingTryBlock = + cxxTryStmt(hasHandlerFor(CatchBadAllocType)); + + const auto NewExprMayThrow = cxxNewExpr(mayThrow()); + const auto HasNewExpr1 = + expr(anyOf(NewExprMayThrow.bind("new1"), + hasDescendant(NewExprMayThrow.bind("new1")))); + const auto HasNewExpr2 = + expr(anyOf(NewExprMayThrow.bind("new2"), + hasDescendant(NewExprMayThrow.bind("new2")))); Finder->addMatcher( callExpr( diff --git a/clang-tools-extra/clang-tidy/bugprone/MultipleStatementMacroCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MultipleStatementMacroCheck.cpp index 54ed8994d0352..bf026f9374437 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MultipleStatementMacroCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MultipleStatementMacroCheck.cpp @@ -23,7 +23,7 @@ AST_MATCHER(Expr, isInMacro) { return Node.getBeginLoc().isMacroID(); } /// Find the next statement after `S`. static const Stmt *nextStmt(const MatchFinder::MatchResult &Result, const Stmt *S) { - auto Parents = Result.Context->getParents(*S); + const auto Parents = Result.Context->getParents(*S); if (Parents.empty()) return nullptr; const auto *Parent = Parents[0].get<Stmt>(); diff --git a/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp index 8421f7f738c2e..b99a3fd1ddc3c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp @@ -49,7 +49,7 @@ bool NonZeroEnumToBoolConversionCheck::isLanguageVersionSupported( void NonZeroEnumToBoolConversionCheck::registerMatchers(MatchFinder *Finder) { // Excluding bitwise operators (binary and overload) to avoid false-positives // in code like this 'if (e & SUCCESS) {'. - auto ExcludedOperators = binaryOperation(hasAnyOperatorName( + const auto ExcludedOperators = binaryOperation(hasAnyOperatorName( "|", "&", "^", "<<", ">>", "~", "|=", "&=", "^=", "<<=", ">>=")); Finder->addMatcher( diff --git a/clang-tools-extra/clang-tidy/bugprone/NondeterministicPointerIterationOrderCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NondeterministicPointerIterationOrderCheck.cpp index d7455be873496..eab0fe2babf53 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NondeterministicPointerIterationOrderCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NondeterministicPointerIterationOrderCheck.cpp @@ -15,10 +15,10 @@ namespace clang::tidy::bugprone { void NondeterministicPointerIterationOrderCheck::registerMatchers( MatchFinder *Finder) { - auto LoopVariable = varDecl(hasType( + const auto LoopVariable = varDecl(hasType( qualType(hasCanonicalType(anyOf(referenceType(), pointerType()))))); - auto RangeInit = declRefExpr(to(varDecl( + const auto RangeInit = declRefExpr(to(varDecl( hasType(recordDecl(hasAnyName("std::unordered_set", "std::unordered_map", "std::unordered_multiset", "std::unordered_multimap")) diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index 8359a393917e5..dc09fabffed1e 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -517,14 +517,14 @@ AST_MATCHER_P(Expr, hasDefinition, ast_matchers::internal::Matcher<Expr>, if (InnerMatcher.matches(*SimpleNode, Finder, Builder)) return true; - auto DREHasInit = ignoringImpCasts( + const auto DREHasInit = ignoringImpCasts( declRefExpr(to(varDecl(hasInitializer(ignoringImpCasts(InnerMatcher)))))); if (DREHasInit.matches(*SimpleNode, Finder, Builder)) return true; const char *const VarDeclName = "variable-declaration"; - auto DREHasDefinition = ignoringImpCasts(declRefExpr( + const auto DREHasDefinition = ignoringImpCasts(declRefExpr( to(varDecl().bind(VarDeclName)), hasAncestor(compoundStmt(hasDescendant(binaryOperator( hasLHS(declRefExpr(to(varDecl(equalsBoundNode(VarDeclName))))), @@ -538,25 +538,26 @@ AST_MATCHER_P(Expr, hasDefinition, ast_matchers::internal::Matcher<Expr>, } // namespace void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { - auto IncOp = + const auto IncOp = binaryOperator(hasOperatorName("+"), hasEitherOperand(ignoringParenImpCasts(integerLiteral()))); - auto DecOp = + const auto DecOp = binaryOperator(hasOperatorName("-"), hasEitherOperand(ignoringParenImpCasts(integerLiteral()))); - auto HasIncOp = anyOf(ignoringImpCasts(IncOp), hasDescendant(IncOp)); - auto HasDecOp = anyOf(ignoringImpCasts(DecOp), hasDescendant(DecOp)); + const auto HasIncOp = anyOf(ignoringImpCasts(IncOp), hasDescendant(IncOp)); + const auto HasDecOp = anyOf(ignoringImpCasts(DecOp), hasDescendant(DecOp)); - auto Container = ignoringImpCasts(cxxMemberCallExpr(hasDescendant(declRefExpr( - hasType(hasUnqualifiedDesugaredType(recordType(hasDeclaration(recordDecl( - hasAnyName("::std::vector", "::std::list", "::std::deque")))))))))); + const auto Container = ignoringImpCasts(cxxMemberCallExpr( + hasDescendant(declRefExpr(hasType(hasUnqualifiedDesugaredType( + recordType(hasDeclaration(recordDecl(hasAnyName( + "::std::vector", "::std::list", "::std::deque")))))))))); - auto StringTy = type(hasUnqualifiedDesugaredType(recordType( + const auto StringTy = type(hasUnqualifiedDesugaredType(recordType( hasDeclaration(cxxRecordDecl(hasName("::std::basic_string")))))); - auto AnyOfStringTy = + const auto AnyOfStringTy = anyOf(hasType(StringTy), hasType(qualType(pointsTo(StringTy)))); auto CharTyArray = hasType(qualType(hasCanonicalType( @@ -565,7 +566,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { auto CharTyPointer = hasType( qualType(hasCanonicalType(pointerType(pointee(isAnyCharacter()))))); - auto AnyOfCharTy = anyOf(CharTyArray, CharTyPointer); + const auto AnyOfCharTy = anyOf(CharTyArray, CharTyPointer); //===--------------------------------------------------------------------===// // The following six cases match problematic length expressions. @@ -603,7 +604,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { auto DREHasReturnWithoutInc = ignoringImpCasts( declRefExpr(to(varDecl(hasInitializer(CallExprReturnWithoutInc))))); - auto AnyOfWrongLengthInit = + const auto AnyOfWrongLengthInit = anyOf(WrongLength, AnyOfCallOrDREWithoutInc, CallExprReturnWithoutInc, DREHasReturnWithoutInc); @@ -615,7 +616,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { // Note: Sometimes the size of char is explicitly written out. auto SizeExpr = anyOf(SizeOfCharExpr, integerLiteral(equals(1))); - auto MallocLengthExpr = allOf( + const auto MallocLengthExpr = allOf( callee(functionDecl( hasAnyName("::alloca", "::calloc", "malloc", "realloc"))), hasAnyArgument(allOf(unless(SizeExpr), expr().bind(DestMallocExprName)))); @@ -641,13 +642,13 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { expr().bind(UnknownDestName)) .bind(DestExprName); - auto AnyOfDestDecl = ignoringImpCasts( + const auto AnyOfDestDecl = ignoringImpCasts( anyOf(allOf(hasDefinition(anyOf(AnyOfDestInit, DestArrayTyDecl, hasDescendant(DestArrayTyDecl))), expr().bind(DestExprName)), anyOf(DestUnknownDecl, hasDescendant(DestUnknownDecl)))); - auto NullTerminatorExpr = binaryOperator( + const auto NullTerminatorExpr = binaryOperator( hasLHS(anyOf(hasDescendant(declRefExpr(to(varDecl( equalsBoundNode(std::string(DestVarDeclName)))))), hasDescendant(declRefExpr( @@ -660,7 +661,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { anyOf(hasAncestor(cxxMemberCallExpr().bind(SrcExprName)), expr().bind(SrcExprName))); - auto AnyOfSrcDecl = + const auto AnyOfSrcDecl = ignoringImpCasts(anyOf(stringLiteral().bind(SrcExprName), hasDescendant(stringLiteral().bind(SrcExprName)), SrcDecl, hasDescendant(SrcDecl))); @@ -683,7 +684,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { bool WithIncrease; }; - auto MatchDestination = [=](CallContext CC) { + const auto MatchDestination = [=](CallContext CC) { return hasArgument(*CC.DestinationPos, allOf(AnyOfDestDecl, unless(hasAncestor(compoundStmt( @@ -691,11 +692,11 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { unless(Container))); }; - auto MatchSource = [=](CallContext CC) { + const auto MatchSource = [=](CallContext CC) { return hasArgument(*CC.SourcePos, AnyOfSrcDecl); }; - auto MatchGivenLength = [=](CallContext CC) { + const auto MatchGivenLength = [=](CallContext CC) { return hasArgument( CC.LengthPos, allOf( @@ -712,7 +713,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { expr().bind(LengthExprName))); }; - auto MatchCall = [=](CallContext CC) { + const auto MatchCall = [=](CallContext CC) { const std::string CharHandlerFuncName = "::" + CC.Name.str(); // Try to match with 'wchar_t' based function calls. @@ -725,7 +726,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { MatchGivenLength(CC)); }; - auto Match = [=](CallContext CC) { + const auto Match = [=](CallContext CC) { if (CC.DestinationPos && CC.SourcePos) return allOf(MatchCall(CC), MatchDestination(CC), MatchSource(CC)); @@ -747,7 +748,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { auto MemcpyS = Match({"memcpy_s", 0, 2, 3, false}); // void *memchr(const void *src, int c, size_t count) - auto Memchr = Match({"memchr", std::nullopt, 0, 2, false}); + const auto Memchr = Match({"memchr", std::nullopt, 0, 2, false}); // void *memmove(void *dest, const void *src, size_t count) auto Memmove = Match({"memmove", 0, 1, 2, false}); @@ -765,8 +766,8 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { // errno_t strerror_s(char *buffer, size_t bufferSize, int errnum); auto StrerrorS = Match({"strerror_s", 0, std::nullopt, 1, false}); - auto AnyOfMatchers = anyOf(Memcpy, MemcpyS, Memmove, MemmoveS, StrncmpRHS, - StrncmpLHS, Strxfrm, StrerrorS); + const auto AnyOfMatchers = anyOf(Memcpy, MemcpyS, Memmove, MemmoveS, + StrncmpRHS, StrncmpLHS, Strxfrm, StrerrorS); Finder->addMatcher(callExpr(AnyOfMatchers).bind(FunctionExprName), this); @@ -915,8 +916,9 @@ void NotNullTerminatedResultCheck::memchrFix( if (GivenCL->getValue() != 0) return; - auto Diag = diag(FunctionExpr->getArg(2)->IgnoreParenCasts()->getBeginLoc(), - "the length is too short to include the null terminator"); + const auto Diag = + diag(FunctionExpr->getArg(2)->IgnoreParenCasts()->getBeginLoc(), + "the length is too short to include the null terminator"); if (const auto *CastExpr = Result.Nodes.getNodeAs<Expr>(CastExprName)) { const auto CastRemoveFix = FixItHint::CreateRemoval( @@ -945,7 +947,7 @@ void NotNullTerminatedResultCheck::memmoveFix( void NotNullTerminatedResultCheck::strerrorSFix( const MatchFinder::MatchResult &Result) { - auto Diag = + const auto Diag = diag(Result.Nodes.getNodeAs<CallExpr>(FunctionExprName)->getBeginLoc(), "the result from calling 'strerror_s' is not null-terminated and " "missing the last character of the error message"); @@ -979,9 +981,10 @@ void NotNullTerminatedResultCheck::ncmpFix( if (!IsLengthTooLong && !isStringDataAndLength(Result)) return; - auto Diag = diag(FunctionExpr->getArg(2)->IgnoreParenCasts()->getBeginLoc(), - "comparison length is too long and might lead to a " - "buffer overflow"); + const auto Diag = + diag(FunctionExpr->getArg(2)->IgnoreParenCasts()->getBeginLoc(), + "comparison length is too long and might lead to a " + "buffer overflow"); lengthArgHandle(LengthHandleKind::Decrease, Result, Diag); } @@ -991,7 +994,7 @@ void NotNullTerminatedResultCheck::xfrmFix( if (!isDestCapacityOverflows(Result)) return; - auto Diag = + const auto Diag = diag(Result.Nodes.getNodeAs<CallExpr>(FunctionExprName)->getBeginLoc(), "the result from calling '%0' is not null-terminated") << Name; diff --git a/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp index 446e62e41d16c..972c8fa1251d6 100644 --- a/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp @@ -51,12 +51,12 @@ OptionalValueConversionCheck::getCheckTraversalKind() const { } void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) { - auto BindOptionalType = qualType(hasCleanType( + const auto BindOptionalType = qualType(hasCleanType( qualType(hasDeclaration(namedDecl( matchers::matchesAnyListedRegexName(OptionalTypes)))) .bind("optional-type"))); - auto EqualsBoundOptionalType = + const auto EqualsBoundOptionalType = qualType(hasCleanType(equalsBoundNode("optional-type"))); auto OptionalDerefMatcherImpl = callExpr( @@ -75,7 +75,7 @@ void OptionalValueConversionCheck::registerMatchers(MatchFinder *Finder) { auto StdMoveCallMatcher = callExpr(argumentCountIs(1), callee(functionDecl(hasName("::std::move"))), hasArgument(0, ignoringImpCasts(OptionalDerefMatcherImpl))); - auto OptionalDerefMatcher = + const auto OptionalDerefMatcher = ignoringImpCasts(anyOf(OptionalDerefMatcherImpl, StdMoveCallMatcher)); Finder->addMatcher( @@ -146,7 +146,7 @@ void OptionalValueConversionCheck::check( if (!Tok) return; const SourceLocation Begin = Tok->getLocation(); - auto Diag = + const auto Diag = diag(CallExpr->getExprLoc(), "remove call to %0 to silence this warning", DiagnosticIDs::Note); Diag << CallExpr->getMethodDecl() diff --git a/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp index 4184f6d89d768..1c3399b4d2601 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp @@ -127,11 +127,12 @@ void ParentVirtualCallCheck::check(const MatchFinder::MatchResult &Result) { } assert(Member->getQualifierLoc().getSourceRange().getBegin().isValid()); - auto Diag = diag(Member->getQualifierLoc().getSourceRange().getBegin(), - "qualified name '%0' refers to a member overridden " - "in %plural{1:subclass|:subclasses}1; did you mean %2?") - << getExprAsString(*Member, *Result.Context) - << static_cast<unsigned>(Parents.size()) << ParentsStr; + const auto Diag = + diag(Member->getQualifierLoc().getSourceRange().getBegin(), + "qualified name '%0' refers to a member overridden " + "in %plural{1:subclass|:subclasses}1; did you mean %2?") + << getExprAsString(*Member, *Result.Context) + << static_cast<unsigned>(Parents.size()) << ParentsStr; // Propose a fix if there's only one parent class... if (Parents.size() == 1 && diff --git a/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp index 270776e9899ad..e703882fefc04 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp @@ -45,12 +45,13 @@ void RandomGeneratorSeedCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { } void RandomGeneratorSeedCheck::registerMatchers(MatchFinder *Finder) { - auto RandomGeneratorEngineDecl = cxxRecordDecl(hasAnyName( + const auto RandomGeneratorEngineDecl = cxxRecordDecl(hasAnyName( "::std::linear_congruential_engine", "::std::mersenne_twister_engine", "::std::subtract_with_carry_engine", "::std::discard_block_engine", "::std::independent_bits_engine", "::std::shuffle_order_engine")); - auto RandomGeneratorEngineTypeMatcher = hasType(hasUnqualifiedDesugaredType( - recordType(hasDeclaration(RandomGeneratorEngineDecl)))); + const auto RandomGeneratorEngineTypeMatcher = + hasType(hasUnqualifiedDesugaredType( + recordType(hasDeclaration(RandomGeneratorEngineDecl)))); // std::mt19937 engine; // engine.seed(); diff --git a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp index 59942a9fb12e6..f02dd91e5a27c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp @@ -75,8 +75,8 @@ void RawMemoryCallOnNonTrivialTypeCheck::registerMatchers(MatchFinder *Finder) { }; auto IsRecordSizeOf = expr(sizeOfExpr(hasArgumentOfType(equalsBoundNode("Record")))); - auto ArgChecker = [&](const Matcher<CXXRecordDecl> &RecordConstraint, - const BindableMatcher<Stmt> &SecondArg = expr()) { + const auto ArgChecker = [&](const Matcher<CXXRecordDecl> &RecordConstraint, + const BindableMatcher<Stmt> &SecondArg = expr()) { return allOf(argumentCountIs(3), hasArgument(0, IsStructPointer(RecordConstraint, true)), hasArgument(1, SecondArg), hasArgument(2, IsRecordSizeOf)); diff --git a/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp index 874664a959d2a..a6458d96055c3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp @@ -104,7 +104,8 @@ void RedundantBranchConditionCheck::check( if (hasPtrOrReferenceInFunc(Func, CondVar)) return; - auto Diag = diag(InnerIf->getBeginLoc(), "redundant condition %0") << CondVar; + const auto Diag = diag(InnerIf->getBeginLoc(), "redundant condition %0") + << CondVar; // For standalone condition variables and for "or" binary operations we simply // remove the inner `if`. diff --git a/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp index 66c80dae0c8ef..9c2a09efc77b3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp @@ -140,7 +140,7 @@ getFailureInfoImpl(StringRef Name, bool IsInGlobalNamespace, bool IsMacro, using FailureInfo = RenamerClangTidyCheck::FailureInfo; if (!Invert) { std::optional<FailureInfo> Info; - auto AppendFailure = [&](StringRef Kind, std::string &&Fixup) { + const auto AppendFailure = [&](StringRef Kind, std::string &&Fixup) { if (!Info) { Info = FailureInfo{std::string(Kind), std::move(Fixup)}; } else { @@ -148,7 +148,7 @@ getFailureInfoImpl(StringRef Name, bool IsInGlobalNamespace, bool IsMacro, Info->Fixup = std::move(Fixup); } }; - auto InProgressFixup = [&] { + const auto InProgressFixup = [&] { return llvm::transformOptional( Info, [](const FailureInfo &Info) { return StringRef(Info.Fixup); }) diff --git a/clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp index 0f9a5f967c153..c645ef54c093e 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp @@ -352,8 +352,9 @@ bool SignalHandlerCheck::isLanguageVersionSupported( } void SignalHandlerCheck::registerMatchers(MatchFinder *Finder) { - auto SignalFunction = functionDecl(hasAnyName("::signal", "::std::signal"), - parameterCountIs(2), isStandard()); + const auto SignalFunction = + functionDecl(hasAnyName("::signal", "::std::signal"), parameterCountIs(2), + isStandard()); auto HandlerExpr = declRefExpr(hasDeclaration(functionDecl().bind("handler_decl")), unless(isExpandedFromMacro("SIG_IGN")), @@ -488,7 +489,7 @@ bool SignalHandlerCheck::checkFunctionCPP14( bool StmtProblemsFound = false; ASTContext &Ctx = FBody->getASTContext(); - auto Matches = + const auto Matches = match(decl(forEachDescendant(stmt().bind("stmt"))), *FBody, Ctx); for (const auto &Match : Matches) { const auto *FoundS = Match.getNodeAs<Stmt>("stmt"); diff --git a/clang-tools-extra/clang-tidy/bugprone/SizeofContainerCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SizeofContainerCheck.cpp index 08ff82f57e3c2..cec93c9417947 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SizeofContainerCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SizeofContainerCheck.cpp @@ -35,7 +35,7 @@ void SizeofContainerCheck::check(const MatchFinder::MatchResult &Result) { const auto *SizeOf = Result.Nodes.getNodeAs<UnaryExprOrTypeTraitExpr>("sizeof"); - auto Diag = + const auto Diag = diag(SizeOf->getBeginLoc(), "sizeof() doesn't return the size of the " "container; did you mean .size()?"); } diff --git a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp index 49ba3b83795dd..12b5a5de55618 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp @@ -97,7 +97,7 @@ void SizeofExpressionCheck::registerMatchers(MatchFinder *Finder) { // Some of the checks should not match in template code to avoid false // positives if sizeof is applied on template argument. - auto LoopCondExpr = + const auto LoopCondExpr = [](const ast_matchers::internal::Matcher<Stmt> &InnerMatcher) { return stmt(anyOf(forStmt(hasCondition(InnerMatcher)), whileStmt(hasCondition(InnerMatcher)), diff --git a/clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp index a0db39ab6f90d..cabeb27117196 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp @@ -54,11 +54,11 @@ void SmartPtrArrayMismatchCheck::registerMatchers(MatchFinder *Finder) { // For both shared and unique pointers, we need to find constructor with // exactly one parameter that has the pointer type. Other constructors are // not applicable for this check. - auto FindConstructor = + const auto FindConstructor = cxxConstructorDecl(ofClass(getSmartPointerClassMatcher()), parameterCountIs(1), isExplicit()) .bind(ConstructorN); - auto FindConstructExpr = + const auto FindConstructExpr = cxxConstructExpr( hasDeclaration(FindConstructor), argumentCountIs(1), hasArgument(0, @@ -81,15 +81,15 @@ void SmartPtrArrayMismatchCheck::check(const MatchFinder::MatchResult &Result) { const DeclaratorDecl *VarOrField = getConstructedVarOrField(FoundConstructExpr, Ctx); - auto D = diag(FoundNewExpr->getBeginLoc(), - "%0 pointer to non-array is initialized with array") - << SmartPointerName; + const auto D = diag(FoundNewExpr->getBeginLoc(), + "%0 pointer to non-array is initialized with array") + << SmartPointerName; D << FoundNewExpr->getSourceRange(); if (VarOrField) { - auto TSTypeLoc = VarOrField->getTypeSourceInfo() - ->getTypeLoc() - .getAsAdjusted<TemplateSpecializationTypeLoc>(); + const auto TSTypeLoc = VarOrField->getTypeSourceInfo() + ->getTypeLoc() + .getAsAdjusted<TemplateSpecializationTypeLoc>(); assert(TSTypeLoc.getNumArgs() >= 1 && "Matched type should have at least 1 template argument."); diff --git a/clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp index 33447273515f4..a623ed690697b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp @@ -39,20 +39,20 @@ AST_POLYMORPHIC_MATCHER_P( namespace clang::tidy::bugprone { void StdNamespaceModificationCheck::registerMatchers(MatchFinder *Finder) { - auto HasStdParent = + const auto HasStdParent = hasDeclContext(namespaceDecl(hasAnyName("std", "posix"), unless(hasParent(namespaceDecl()))) .bind("nmspc")); - auto UserDefinedDecl = + const auto UserDefinedDecl = namedDecl(anyOf(classTemplateDecl(), tagDecl()), hasAncestor(namespaceDecl(hasAnyName("std", "posix"), unless(hasParent(namespaceDecl()))))); - auto UserDefinedType = qualType(hasUnqualifiedDesugaredType(anyOf( + const auto UserDefinedType = qualType(hasUnqualifiedDesugaredType(anyOf( tagType(unless(hasDeclaration(UserDefinedDecl))), templateSpecializationType(unless(hasDeclaration(UserDefinedDecl)))))); - auto HasNoProgramDefinedTemplateArgument = unless( + const auto HasNoProgramDefinedTemplateArgument = unless( hasAnyTemplateArgumentIncludingPack(refersToType(UserDefinedType))); - auto InsideStdClassOrClassTemplateSpecialization = hasDeclContext( + const auto InsideStdClassOrClassTemplateSpecialization = hasDeclContext( anyOf(cxxRecordDecl(HasStdParent), classTemplateSpecializationDecl( HasStdParent, HasNoProgramDefinedTemplateArgument))); diff --git a/clang-tools-extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp index e3cb824deb5e2..e790d385cd531 100644 --- a/clang-tools-extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp @@ -140,7 +140,7 @@ void StringIntegerAssignmentCheck::check( .isLikelyCharExpression(Argument)) return; - auto Diag = + const auto Diag = diag(Loc, "an integer is interpreted as a character code when assigning " "it to a string; if this is intended, cast the integer to the " "appropriate character type; if you want a string " diff --git a/clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp index 6da20d3f6fecb..d8586b67e5703 100644 --- a/clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp @@ -34,22 +34,22 @@ AST_MATCHER(VarDecl, isDirectInitialization) { } // namespace static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { - auto ConstructionWarning = + const auto ConstructionWarning = cat("constructing basic_string_view from null is undefined; replace with " "the default constructor"); - auto StaticCastWarning = + const auto StaticCastWarning = cat("casting to basic_string_view from null is undefined; replace with " "the empty string"); - auto ArgumentConstructionWarning = + const auto ArgumentConstructionWarning = cat("passing null as basic_string_view is undefined; replace with the " "empty string"); - auto AssignmentWarning = + const auto AssignmentWarning = cat("assignment to basic_string_view from null is undefined; replace " "with the default constructor"); - auto RelativeComparisonWarning = + const auto RelativeComparisonWarning = cat("comparing basic_string_view to null is undefined; replace with the " "empty string"); - auto EqualityComparisonWarning = + const auto EqualityComparisonWarning = cat("comparing basic_string_view to null is undefined; replace with the " "emptiness query"); @@ -69,7 +69,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { auto EmptyInitList = initListExpr(initCountIs(0)); // Matches null construction without `basic_string_view` type spelling - auto BasicStringViewConstructingFromNullExpr = + const auto BasicStringViewConstructingFromNullExpr = cxxConstructExpr( HasBasicStringViewType, argumentCountIs(1), hasAnyArgument(/* `hasArgument` would skip over parens */ anyOf( @@ -79,34 +79,35 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { .bind("construct_expr"); // `std::string_view(null_arg_expr)` - auto HandleTemporaryCXXFunctionalCastExpr = + const auto HandleTemporaryCXXFunctionalCastExpr = makeRule(cxxFunctionalCastExpr(hasSourceExpression( BasicStringViewConstructingFromNullExpr)), remove(node("null_arg_expr")), ConstructionWarning); // `std::string_view{null_arg_expr}` and `(std::string_view){null_arg_expr}` - auto HandleTemporaryCXXTemporaryObjectExprAndCompoundLiteralExpr = makeRule( - cxxTemporaryObjectExpr(cxxConstructExpr( - HasBasicStringViewType, argumentCountIs(1), - hasAnyArgument(/* `hasArgument` would skip over parens */ anyOf( - NullLiteral, NullInitList, EmptyInitList)), - has(expr().bind("null_arg_expr")))), - remove(node("null_arg_expr")), ConstructionWarning); + const auto HandleTemporaryCXXTemporaryObjectExprAndCompoundLiteralExpr = + makeRule( + cxxTemporaryObjectExpr(cxxConstructExpr( + HasBasicStringViewType, argumentCountIs(1), + hasAnyArgument(/* `hasArgument` would skip over parens */ anyOf( + NullLiteral, NullInitList, EmptyInitList)), + has(expr().bind("null_arg_expr")))), + remove(node("null_arg_expr")), ConstructionWarning); // `(std::string_view) null_arg_expr` - auto HandleTemporaryCStyleCastExpr = + const auto HandleTemporaryCStyleCastExpr = makeRule(cStyleCastExpr(hasSourceExpression( BasicStringViewConstructingFromNullExpr)), changeTo(node("null_arg_expr"), cat("{}")), ConstructionWarning); // `static_cast<std::string_view>(null_arg_expr)` - auto HandleTemporaryCXXStaticCastExpr = + const auto HandleTemporaryCXXStaticCastExpr = makeRule(cxxStaticCastExpr(hasSourceExpression( BasicStringViewConstructingFromNullExpr)), changeTo(node("null_arg_expr"), cat("\"\"")), StaticCastWarning); // `std::string_view sv = null_arg_expr;` - auto HandleStackCopyInitialization = + const auto HandleStackCopyInitialization = makeRule(varDecl(HasBasicStringViewType, hasInitializer(ignoringImpCasts(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -115,7 +116,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { changeTo(node("null_arg_expr"), cat("{}")), ConstructionWarning); // `std::string_view sv = {null_arg_expr};` - auto HandleStackCopyListInitialization = + const auto HandleStackCopyListInitialization = makeRule(varDecl(HasBasicStringViewType, hasInitializer(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -124,7 +125,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { remove(node("null_arg_expr")), ConstructionWarning); // `std::string_view sv(null_arg_expr);` - auto HandleStackDirectInitialization = + const auto HandleStackDirectInitialization = makeRule(varDecl(HasBasicStringViewType, hasInitializer(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -135,7 +136,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { ConstructionWarning); // `std::string_view sv{null_arg_expr};` - auto HandleStackDirectListInitialization = + const auto HandleStackDirectListInitialization = makeRule(varDecl(HasBasicStringViewType, hasInitializer(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -144,7 +145,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { remove(node("null_arg_expr")), ConstructionWarning); // `struct S { std::string_view sv = null_arg_expr; };` - auto HandleFieldInClassCopyInitialization = makeRule( + const auto HandleFieldInClassCopyInitialization = makeRule( fieldDecl(HasBasicStringViewType, hasInClassInitializer(ignoringImpCasts( cxxConstructExpr(BasicStringViewConstructingFromNullExpr, @@ -153,7 +154,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { // `struct S { std::string_view sv = {null_arg_expr}; };` and // `struct S { std::string_view sv{null_arg_expr}; };` - auto HandleFieldInClassCopyListAndDirectListInitialization = makeRule( + const auto HandleFieldInClassCopyListAndDirectListInitialization = makeRule( fieldDecl(HasBasicStringViewType, hasInClassInitializer(ignoringImpCasts( cxxConstructExpr(BasicStringViewConstructingFromNullExpr, @@ -161,7 +162,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { remove(node("null_arg_expr")), ConstructionWarning); // `class C { std::string_view sv; C() : sv(null_arg_expr) {} };` - auto HandleConstructorDirectInitialization = + const auto HandleConstructorDirectInitialization = makeRule(cxxCtorInitializer(forField(fieldDecl(HasBasicStringViewType)), withInitializer(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -169,7 +170,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { remove(node("null_arg_expr")), ConstructionWarning); // `class C { std::string_view sv; C() : sv{null_arg_expr} {} };` - auto HandleConstructorDirectListInitialization = + const auto HandleConstructorDirectListInitialization = makeRule(cxxCtorInitializer(forField(fieldDecl(HasBasicStringViewType)), withInitializer(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -177,7 +178,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { remove(node("null_arg_expr")), ConstructionWarning); // `void f(std::string_view sv = null_arg_expr);` - auto HandleDefaultArgumentCopyInitialization = + const auto HandleDefaultArgumentCopyInitialization = makeRule(parmVarDecl(HasBasicStringViewType, hasInitializer(ignoringImpCasts(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -185,7 +186,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { changeTo(node("null_arg_expr"), cat("{}")), ConstructionWarning); // `void f(std::string_view sv = {null_arg_expr});` - auto HandleDefaultArgumentCopyListInitialization = + const auto HandleDefaultArgumentCopyListInitialization = makeRule(parmVarDecl(HasBasicStringViewType, hasInitializer(cxxConstructExpr( BasicStringViewConstructingFromNullExpr, @@ -193,21 +194,21 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { remove(node("null_arg_expr")), ConstructionWarning); // `new std::string_view(null_arg_expr)` - auto HandleHeapDirectInitialization = makeRule( + const auto HandleHeapDirectInitialization = makeRule( cxxNewExpr(has(cxxConstructExpr(BasicStringViewConstructingFromNullExpr, unless(isListInitialization()))), unless(isArray()), unless(hasAnyPlacementArg(anything()))), remove(node("null_arg_expr")), ConstructionWarning); // `new std::string_view{null_arg_expr}` - auto HandleHeapDirectListInitialization = makeRule( + const auto HandleHeapDirectListInitialization = makeRule( cxxNewExpr(has(cxxConstructExpr(BasicStringViewConstructingFromNullExpr, isListInitialization())), unless(isArray()), unless(hasAnyPlacementArg(anything()))), remove(node("null_arg_expr")), ConstructionWarning); // `function(null_arg_expr)` - auto HandleFunctionArgumentInitialization = + const auto HandleFunctionArgumentInitialization = makeRule(callExpr(hasAnyArgument(ignoringImpCasts( BasicStringViewConstructingFromNullExpr)), unless(cxxOperatorCallExpr())), @@ -215,21 +216,21 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { ArgumentConstructionWarning); // `sv = null_arg_expr` - auto HandleAssignment = makeRule( + const auto HandleAssignment = makeRule( cxxOperatorCallExpr(hasOverloadedOperatorName("="), hasRHS(materializeTemporaryExpr( has(BasicStringViewConstructingFromNullExpr)))), changeTo(node("construct_expr"), cat("{}")), AssignmentWarning); // `sv < null_arg_expr` - auto HandleRelativeComparison = makeRule( + const auto HandleRelativeComparison = makeRule( cxxOperatorCallExpr(hasAnyOverloadedOperatorName("<", "<=", ">", ">="), hasEitherOperand(ignoringImpCasts( BasicStringViewConstructingFromNullExpr))), changeTo(node("construct_expr"), cat("\"\"")), RelativeComparisonWarning); // `sv == null_arg_expr` - auto HandleEmptyEqualityComparison = makeRule( + const auto HandleEmptyEqualityComparison = makeRule( cxxOperatorCallExpr( hasOverloadedOperatorName("=="), hasOperands(ignoringImpCasts(BasicStringViewConstructingFromNullExpr), @@ -240,7 +241,7 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { EqualityComparisonWarning); // `sv != null_arg_expr` - auto HandleNonEmptyEqualityComparison = makeRule( + const auto HandleNonEmptyEqualityComparison = makeRule( cxxOperatorCallExpr( hasOverloadedOperatorName("!="), hasOperands(ignoringImpCasts(BasicStringViewConstructingFromNullExpr), @@ -251,13 +252,13 @@ static RewriteRuleWith<std::string> stringviewNullptrCheckImpl() { EqualityComparisonWarning); // `return null_arg_expr;` - auto HandleReturnStatement = makeRule( + const auto HandleReturnStatement = makeRule( returnStmt(hasReturnValue( ignoringImpCasts(BasicStringViewConstructingFromNullExpr))), changeTo(node("construct_expr"), cat("{}")), ConstructionWarning); // `T(null_arg_expr)` - auto HandleConstructorInvocation = + const auto HandleConstructorInvocation = makeRule(cxxConstructExpr( hasAnyArgument(/* `hasArgument` would skip over parens */ ignoringImpCasts( diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp index f28bdbeb6db84..cea813b18230f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp @@ -74,7 +74,7 @@ static bool isNonPowerOf2NorNullLiteral(const EnumConstantDecl *EnumConst) { } static bool isMaxValAllBitSetLiteral(const EnumDecl *EnumDec) { - auto EnumConst = std::max_element( + const auto EnumConst = std::max_element( EnumDec->enumerator_begin(), EnumDec->enumerator_end(), [](const EnumConstantDecl *E1, const EnumConstantDecl *E2) { return E1->getInitVal() < E2->getInitVal(); diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp index 63ba2edf2015a..703d69a093f6f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp @@ -20,7 +20,7 @@ namespace clang::tidy::bugprone { void SuspiciousMemsetUsageCheck::registerMatchers(MatchFinder *Finder) { // Match the standard memset: // void *memset(void *buffer, int fill_char, size_t byte_count); - auto MemsetDecl = + const auto MemsetDecl = functionDecl(hasName("::memset"), parameterCountIs(3), hasParameter(0, hasType(pointerType(pointee(voidType())))), hasParameter(1, hasType(isInteger())), @@ -61,7 +61,7 @@ void SuspiciousMemsetUsageCheck::check(const MatchFinder::MatchResult &Result) { // integer zero was intended. const SourceRange CharRange = CharZeroFill->getSourceRange(); - auto Diag = + const auto Diag = diag(CharZeroFill->getBeginLoc(), "memset fill value is char '0', " "potentially mistaken for int 0"); @@ -114,8 +114,8 @@ void SuspiciousMemsetUsageCheck::check(const MatchFinder::MatchResult &Result) { // `byte_count` is known to be zero at compile time, and `fill_char` is // either not known or known to be a positive integer. Emit a warning // and fix-its to swap the arguments. - auto D = diag(Call->getBeginLoc(), - "memset of size zero, potentially swapped arguments"); + const auto D = diag(Call->getBeginLoc(), + "memset of size zero, potentially swapped arguments"); const StringRef RHSString = tooling::fixit::getText(*ByteCount, *Result.Context); const StringRef LHSString = diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp index 4f0d819d2147b..1ada9e5eba86c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp @@ -20,7 +20,7 @@ static bool isConcatenatedLiteralsOnPurpose(ASTContext *Ctx, // i.e.: const char* Array[] = { ("a" "b" "c"), "d", [...] }; const TraversalKindScope RAII(*Ctx, TK_AsIs); - auto Parents = Ctx->getParents(*Lit); + const auto Parents = Ctx->getParents(*Lit); if (Parents.size() == 1 && Parents[0].get<ParenExpr>() != nullptr) return true; diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp index bf31218131d5e..03fc3c56f428c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp @@ -104,13 +104,13 @@ namespace clang::tidy::bugprone { void SuspiciousReallocUsageCheck::registerMatchers(MatchFinder *Finder) { // void *realloc(void *ptr, size_t size); - auto ReallocDecl = + const auto ReallocDecl = functionDecl(hasName("::realloc"), parameterCountIs(2), hasParameter(0, hasType(pointerType(pointee(voidType())))), hasParameter(1, hasType(isInteger()))) .bind("realloc"); - auto ReallocCall = + const auto ReallocCall = callExpr(callee(ReallocDecl), hasArgument(0, expr().bind("ptr_input")), hasAncestor(functionDecl().bind("parent_function"))) .bind("call"); diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp index 342a6e8480fa7..660b022714682 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.cpp @@ -43,16 +43,16 @@ SuspiciousStringviewDataUsageCheck::getCheckTraversalKind() const { } void SuspiciousStringviewDataUsageCheck::registerMatchers(MatchFinder *Finder) { - auto AncestorCall = anyOf( + const auto AncestorCall = anyOf( cxxConstructExpr(), callExpr(unless(cxxOperatorCallExpr())), lambdaExpr(), initListExpr( hasType(qualType(hasCanonicalType(hasDeclaration(recordDecl())))))); - auto DataMethod = cxxMethodDecl( + const auto DataMethod = cxxMethodDecl( hasName("data"), ofClass(matchers::matchesAnyListedRegexName(StringViewTypes))); - auto SizeCall = cxxMemberCallExpr( + const auto SizeCall = cxxMemberCallExpr( callee(cxxMethodDecl(hasAnyName("size", "length"))), on(ignoringParenImpCasts( matchers::isStatementIdenticalToBoundNode("self")))); diff --git a/clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp index 0c64b68fba591..b4c0eb26d2321 100644 --- a/clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp @@ -101,18 +101,20 @@ void TaggedUnionMemberCountCheck::storeOptions( } void TaggedUnionMemberCountCheck::registerMatchers(MatchFinder *Finder) { - auto NotFromSystemHeaderOrStdNamespace = + const auto NotFromSystemHeaderOrStdNamespace = unless(anyOf(isExpansionInSystemHeader(), isInStdNamespace())); - auto UnionField = + const auto UnionField = fieldDecl(hasType(qualType(hasCanonicalType(recordType(hasDeclaration( recordDecl(isUnion(), NotFromSystemHeaderOrStdNamespace))))))); - auto EnumField = fieldDecl(hasType(qualType(hasCanonicalType( + const auto EnumField = fieldDecl(hasType(qualType(hasCanonicalType( enumType(hasDeclaration(enumDecl(NotFromSystemHeaderOrStdNamespace))))))); - auto HasOneUnionField = fieldCountOfKindIsOne(UnionField, UnionMatchBindName); - auto HasOneEnumField = fieldCountOfKindIsOne(EnumField, TagMatchBindName); + const auto HasOneUnionField = + fieldCountOfKindIsOne(UnionField, UnionMatchBindName); + const auto HasOneEnumField = + fieldCountOfKindIsOne(EnumField, TagMatchBindName); Finder->addMatcher(recordDecl(anyOf(isStruct(), isClass()), HasOneUnionField, HasOneEnumField, unless(isImplicit())) diff --git a/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp index c8ce77ed6a4ab..199ff80fc7026 100644 --- a/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp @@ -35,7 +35,7 @@ void TerminatingContinueCheck::registerMatchers(MatchFinder *Finder) { void TerminatingContinueCheck::check(const MatchFinder::MatchResult &Result) { const auto *ContStmt = Result.Nodes.getNodeAs<ContinueStmt>("continue"); - auto Diag = + const auto Diag = diag(ContStmt->getBeginLoc(), "'continue' in loop with false condition is equivalent to 'break'") << tooling::fixit::createReplacement(*ContStmt, "break"); diff --git a/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp index cf7829984fab9..09c86e7da94f3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp @@ -27,7 +27,7 @@ static constexpr StringRef FuncID = "fun"; void UncheckedOptionalAccessCheck::registerMatchers(MatchFinder *Finder) { using namespace ast_matchers; - auto HasOptionalCallDescendant = hasDescendant(callExpr( + const auto HasOptionalCallDescendant = hasDescendant(callExpr( anyOf(UncheckedOptionalAccessModel::memberCallToOptionalClass(), UncheckedOptionalAccessModel::operatorCallToOptionalClass()))); Finder->addMatcher( diff --git a/clang-tools-extra/clang-tidy/bugprone/UnhandledExceptionAtNewCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnhandledExceptionAtNewCheck.cpp index 340b136700c5f..2529a2567b98d 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnhandledExceptionAtNewCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnhandledExceptionAtNewCheck.cpp @@ -52,12 +52,13 @@ void UnhandledExceptionAtNewCheck::registerMatchers(MatchFinder *Finder) { auto BadAllocReferenceType = referenceType(pointee(BadAllocType)); auto ExceptionReferenceType = referenceType(pointee(ExceptionType)); - auto CatchBadAllocType = + const auto CatchBadAllocType = qualType(hasCanonicalType(anyOf(BadAllocType, BadAllocReferenceType, ExceptionType, ExceptionReferenceType))); - auto BadAllocCatchingTryBlock = cxxTryStmt(hasHandlerFor(CatchBadAllocType)); + const auto BadAllocCatchingTryBlock = + cxxTryStmt(hasHandlerFor(CatchBadAllocType)); - auto FunctionMayNotThrow = functionDecl(isNoThrow()); + const auto FunctionMayNotThrow = functionDecl(isNoThrow()); Finder->addMatcher(cxxNewExpr(mayThrow(), unless(hasAncestor(BadAllocCatchingTryBlock)), diff --git a/clang-tools-extra/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.cpp index 34c2c6dd4642d..8cf3cb4eb52ba 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.cpp @@ -18,7 +18,7 @@ UniquePtrArrayMismatchCheck::UniquePtrArrayMismatchCheck( UniquePtrArrayMismatchCheck::SmartPtrClassMatcher UniquePtrArrayMismatchCheck::getSmartPointerClassMatcher() const { - auto DeleterDecl = classTemplateSpecializationDecl( + const auto DeleterDecl = classTemplateSpecializationDecl( hasName("::std::default_delete"), templateArgumentCountIs(1), hasTemplateArgument(0, templateArgument(refersToType( qualType(equalsBoundNode(PointerTypeN)))))); diff --git a/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp index 936fb991c5fff..eb45cc7e67ff6 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp @@ -184,7 +184,7 @@ void UnsafeFunctionsCheck::registerMatchers(MatchFinder *Finder) { if (ReportDefaultFunctions) { if (getLangOpts().C11) { // Matching functions with safe replacements only in Annex K. - auto FunctionNamesWithAnnexKReplacementMatcher = hasAnyName( + const auto FunctionNamesWithAnnexKReplacementMatcher = hasAnyName( "::bsearch", "::ctime", "::fopen", "::fprintf", "::freopen", "::fscanf", "::fwprintf", "::fwscanf", "::getenv", "::gmtime", "::localtime", "::mbsrtowcs", "::mbstowcs", "::memcpy", "::memmove", @@ -205,7 +205,7 @@ void UnsafeFunctionsCheck::registerMatchers(MatchFinder *Finder) { } // Matching functions with replacements without Annex K. - auto FunctionNamesMatcher = + const auto FunctionNamesMatcher = hasAnyName("::asctime", "asctime_r", "::gets", "::rewind", "::setbuf", "::std::get_temporary_buffer"); Finder->addMatcher( @@ -216,7 +216,7 @@ void UnsafeFunctionsCheck::registerMatchers(MatchFinder *Finder) { if (ReportMoreUnsafeFunctions) { // Matching functions with replacements without Annex K, at user request. - auto AdditionalFunctionNamesMatcher = + const auto AdditionalFunctionNamesMatcher = hasAnyName("::bcmp", "::bcopy", "::bzero", "::getpw", "::vfork"); Finder->addMatcher( declRefExpr(to(functionDecl(AdditionalFunctionNamesMatcher) @@ -233,7 +233,7 @@ void UnsafeFunctionsCheck::registerMatchers(MatchFinder *Finder) { for (const auto &Entry : CustomFunctions) FunctionNames.emplace_back(Entry.Name); - auto CustomFunctionsMatcher = + const auto CustomFunctionsMatcher = matchers::matchesAnyListedRegexName(FunctionNames); Finder->addMatcher(declRefExpr(to(functionDecl(CustomFunctionsMatcher) diff --git a/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp index 6502fc9bfb89e..0a9818d3936b0 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp @@ -72,8 +72,9 @@ void UnusedRaiiCheck::check(const MatchFinder::MatchResult &Result) { return; // Emit a warning. - auto D = diag(E->getBeginLoc(), "object destroyed immediately after " - "creation; did you mean to name the object?"); + const auto D = + diag(E->getBeginLoc(), "object destroyed immediately after " + "creation; did you mean to name the object?"); if (const auto *Node = dyn_cast<CXXConstructExpr>(E)) reportDiagnostic(D, Node, Node->getParenOrBraceRange(), diff --git a/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp index c5792cd17b9b2..c89ed9d50011a 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp @@ -184,9 +184,9 @@ void UnusedReturnValueCheck::registerMatchers(MatchFinder *Finder) { CheckedReturnTypes))))))))) .bind("match")); - auto CheckCastToVoid = + const auto CheckCastToVoid = AllowCastToVoid ? castExpr(unless(hasCastKind(CK_ToVoid))) : castExpr(); - auto MatchedCallExpr = expr( + const auto MatchedCallExpr = expr( anyOf(MatchedDirectCallExpr, explicitCastExpr(unless(cxxFunctionalCastExpr()), CheckCastToVoid, hasSourceExpression(MatchedDirectCallExpr)))); diff --git a/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp index f8555aa251165..3a2f07b376e86 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp @@ -413,8 +413,8 @@ void UseAfterMoveFinder::getDeclRefs( if (!S) continue; - auto AddDeclRefs = [this, Block, - DeclRefs](const ArrayRef<BoundNodes> Matches) { + const auto AddDeclRefs = [this, Block, + DeclRefs](const ArrayRef<BoundNodes> Matches) { for (const auto &Match : Matches) { const auto *DeclRef = Match.getNodeAs<DeclRefExpr>("declref"); const auto *Member = Match.getNodeAs<MemberExpr>("member-expr"); @@ -434,7 +434,7 @@ void UseAfterMoveFinder::getDeclRefs( } }; - auto DeclRefMatcher = + const auto DeclRefMatcher = declRefExpr(hasDeclaration(equalsNode(MovedVariable)), unless(inDecltypeOrTemplateArg()), unless(hasParentIgnoringParenImpCasts( @@ -556,13 +556,14 @@ void UseAfterMoveCheck::registerMatchers(MatchFinder *Finder) { // bool to tell callers whether it moved. Ignore std::move inside // try_emplace to avoid false positives as we don't track uses of // the bool. - auto TryEmplaceMatcher = + const auto TryEmplaceMatcher = cxxMemberCallExpr(callee(cxxMethodDecl(hasName("try_emplace")))); - auto Arg = declRefExpr().bind("arg"); - auto IsMemberCallee = callee(functionDecl(unless(isStaticStorageClass()))); - auto DerivedToBaseCast = + const auto Arg = declRefExpr().bind("arg"); + const auto IsMemberCallee = + callee(functionDecl(unless(isStaticStorageClass()))); + const auto DerivedToBaseCast = implicitCastExpr(hasCastKind(CK_DerivedToBase)).bind("optional-cast"); - auto CallMoveMatcher = callExpr( + const auto CallMoveMatcher = callExpr( callee(functionDecl(getNameMatcher(InvalidationFunctions)) .bind("move-decl")), anyOf(cxxMemberCallExpr(IsMemberCallee, on(Arg)), diff --git a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp index 0fd965f88e0d5..67a44d155bd2b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp @@ -193,7 +193,7 @@ bool VirtualNearMissCheck::isPossibleToBeOverridden( bool VirtualNearMissCheck::isOverriddenByDerivedClass( const CXXMethodDecl *BaseMD, const CXXRecordDecl *DerivedRD) { const std::pair Key(BaseMD, DerivedRD); - auto Iter = OverriddenMap.find(Key); + const auto Iter = OverriddenMap.find(Key); if (Iter != OverriddenMap.end()) return Iter->second; @@ -244,12 +244,12 @@ void VirtualNearMissCheck::check(const MatchFinder::MatchResult &Result) { if (EditDistance > 0 && EditDistance <= EditDistanceThreshold) { if (checkOverrideWithoutName(Context, BaseMD, DerivedMD)) { // A "virtual near miss" is found. - auto Range = CharSourceRange::getTokenRange( + const auto Range = CharSourceRange::getTokenRange( SourceRange(DerivedMD->getLocation())); const bool ApplyFix = !BaseMD->isTemplateInstantiation() && !DerivedMD->isTemplateInstantiation(); - auto Diag = + const auto Diag = diag(DerivedMD->getBeginLoc(), "method '%0' has a similar name and the same signature as " "virtual method '%1'; did you mean to override it?") _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
