https://github.com/vbvictor updated https://github.com/llvm/llvm-project/pull/147793
>From c4466d677619e6eb8ca65ed943bfb103207527c9 Mon Sep 17 00:00:00 2001 From: Victor Baranov <bar.victor.2...@gmail.com> Date: Wed, 9 Jul 2025 21:00:30 +0300 Subject: [PATCH 1/3] [clang-tidy][NFC] add '.clang-tidy' config for clang-tidy project --- clang-tools-extra/clang-tidy/.clang-tidy | 11 +++++++++++ .../bugprone/CrtpConstructorAccessibilityCheck.cpp | 7 ++----- .../clang-tidy/bugprone/SizeofExpressionCheck.cpp | 10 +++++----- 3 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 clang-tools-extra/clang-tidy/.clang-tidy diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy new file mode 100644 index 0000000000000..65af940909efe --- /dev/null +++ b/clang-tools-extra/clang-tidy/.clang-tidy @@ -0,0 +1,11 @@ +InheritParentConfig: true +Checks: [ + bugprone-*, + -bugprone-assignment-in-if-condition, + -bugprone-branch-clone, + -bugprone-easily-swappable-parameters, + -bugprone-narrowing-conversions, + -bugprone-suspicious-stringview-data-usage, + -bugprone-unchecked-optional-access, + -bugprone-unused-return-value +] diff --git a/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp index 28e8fe002d575..6565fa3f7c85b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.cpp @@ -129,13 +129,10 @@ void CrtpConstructorAccessibilityCheck::check( << HintFriend; } - auto WithFriendHintIfNeeded = - [&](const DiagnosticBuilder &Diag, - bool NeedsFriend) -> const DiagnosticBuilder & { + auto WithFriendHintIfNeeded = [&](const DiagnosticBuilder &Diag, + bool NeedsFriend) { if (NeedsFriend) Diag << HintFriend; - - return Diag; }; if (!CRTPDeclaration->hasUserDeclaredConstructor()) { diff --git a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp index 88d2f2c388d07..88e048e65d4e8 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp @@ -370,16 +370,16 @@ void SizeofExpressionCheck::check(const MatchFinder::MatchResult &Result) { << E->getSourceRange(); } else if (Result.Nodes.getNodeAs<Stmt>("loop-expr")) { auto *SizeofArgTy = Result.Nodes.getNodeAs<Type>("sizeof-arg-type"); - if (const auto member = dyn_cast<MemberPointerType>(SizeofArgTy)) - SizeofArgTy = member->getPointeeType().getTypePtr(); + if (const auto *Member = dyn_cast<MemberPointerType>(SizeofArgTy)) + SizeofArgTy = Member->getPointeeType().getTypePtr(); const auto *SzOfExpr = Result.Nodes.getNodeAs<Expr>("sizeof-expr"); - if (const auto type = dyn_cast<ArrayType>(SizeofArgTy)) { + if (const auto *Type = dyn_cast<ArrayType>(SizeofArgTy)) { // check if the array element size is larger than one. If true, // the size of the array is higher than the number of elements - CharUnits sSize = Ctx.getTypeSizeInChars(type->getElementType()); - if (!sSize.isOne()) { + CharUnits SSize = Ctx.getTypeSizeInChars(Type->getElementType()); + if (!SSize.isOne()) { diag(SzOfExpr->getBeginLoc(), "suspicious usage of 'sizeof' in the loop") << SzOfExpr->getSourceRange(); >From 4b061f9ad53bb7ca3ad3580743876f2457bbb713 Mon Sep 17 00:00:00 2001 From: Victor Baranov <bar.victor.2...@gmail.com> Date: Wed, 9 Jul 2025 22:42:47 +0300 Subject: [PATCH 2/3] [clang-tidy][NFC] enabled 'modernize', 'readability', 'performance' categories in .clang-tidy --- clang-tools-extra/clang-tidy/.clang-tidy | 33 ++++++++++++++++++- .../clang-tidy/boost/UseRangesCheck.h | 2 +- .../bugprone/ArgumentCommentCheck.cpp | 2 +- .../clang-tidy/bugprone/InfiniteLoopCheck.cpp | 6 ++-- .../MacroRepeatedSideEffectsCheck.cpp | 3 +- .../bugprone/UnsafeFunctionsCheck.cpp | 2 +- .../MissingStdForwardCheck.cpp | 2 +- .../misc/RedundantExpressionCheck.cpp | 10 +++--- .../modernize/UseConstraintsCheck.cpp | 4 +-- .../clang-tidy/modernize/UseRangesCheck.h | 2 +- .../modernize/UseScopedLockCheck.cpp | 7 ++-- .../modernize/UseStdFormatCheck.cpp | 2 +- .../objc/PropertyDeclarationCheck.cpp | 2 +- .../ConvertMemberFunctionsToStatic.cpp | 2 +- .../MakeMemberFunctionConstCheck.cpp | 2 +- .../SuspiciousCallArgumentCheck.cpp | 4 +-- .../utils/DesignatedInitializers.cpp | 2 +- .../clang-tidy/utils/HeaderGuard.cpp | 4 ++- .../utils/RenamerClangTidyCheck.cpp | 4 +-- .../clang-tidy/utils/UseRangesCheck.cpp | 4 +-- .../clang-tidy/utils/UseRangesCheck.h | 2 +- 21 files changed, 66 insertions(+), 35 deletions(-) diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy index 65af940909efe..15375ec2d3cb8 100644 --- a/clang-tools-extra/clang-tidy/.clang-tidy +++ b/clang-tools-extra/clang-tidy/.clang-tidy @@ -7,5 +7,36 @@ Checks: [ -bugprone-narrowing-conversions, -bugprone-suspicious-stringview-data-usage, -bugprone-unchecked-optional-access, - -bugprone-unused-return-value + -bugprone-unused-return-value, + modernize-*, + -modernize-avoid-c-arrays, + -modernize-pass-by-value, + -modernize-use-auto, + -modernize-use-nodiscard, + -modernize-use-trailing-return-type, + performance-*, + -performance-enum-size, + -performance-move-const-arg, + -performance-no-int-to-ptr, + -performance-type-promotion-in-math-fn, + -performance-unnecessary-value-param, + readability-*, + -readability-avoid-nested-conditional-operator, + -readability-avoid-return-with-void-value, + -readability-braces-around-statements, + -readability-container-contains, + -readability-convert-member-functions-to-static, + -readability-else-after-return, # enabled via 'llvm-else-after-return' + -readability-function-cognitive-complexity, + -readability-identifier-length, + -readability-implicit-bool-conversion, + -readability-isolate-declaration, + -readability-magic-numbers, + -readability-named-parameter, + -readability-qualified-auto, # enabled via 'llvm-qualified-auto' + -readability-redundant-declaration, + -readability-simplify-boolean-expr, + -readability-static-definition-in-anonymous-namespace, + -readability-suspicious-call-argument, + -readability-use-anyofallof ] diff --git a/clang-tools-extra/clang-tidy/boost/UseRangesCheck.h b/clang-tools-extra/clang-tidy/boost/UseRangesCheck.h index b081c4c479b92..d91e6393a0e85 100644 --- a/clang-tools-extra/clang-tidy/boost/UseRangesCheck.h +++ b/clang-tools-extra/clang-tidy/boost/UseRangesCheck.h @@ -22,7 +22,7 @@ class UseRangesCheck : public utils::UseRangesCheck { public: UseRangesCheck(StringRef Name, ClangTidyContext *Context); - void storeOptions(ClangTidyOptions::OptionMap &Options) override; + void storeOptions(ClangTidyOptions::OptionMap &Opts) override; ReplacerMap getReplacerMap() const override; diff --git a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp index 8cdd5d0a56467..b843e317c471d 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp @@ -145,7 +145,7 @@ static bool isLikelyTypo(llvm::ArrayRef<ParmVarDecl *> Params, std::string ArgNameLowerStr = ArgName.lower(); StringRef ArgNameLower = ArgNameLowerStr; // The threshold is arbitrary. - unsigned UpperBound = (ArgName.size() + 2) / 3 + 1; + unsigned UpperBound = ((ArgName.size() + 2) / 3) + 1; unsigned ThisED = ArgNameLower.edit_distance( Params[ArgIndex]->getIdentifier()->getName().lower(), /*AllowReplacements=*/true, UpperBound); diff --git a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp index 07116a7ff15f5..3c3024d538785 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp @@ -18,8 +18,7 @@ using namespace clang::ast_matchers; using clang::ast_matchers::internal::Matcher; using clang::tidy::utils::hasPtrOrReferenceInFunc; -namespace clang { -namespace tidy::bugprone { +namespace clang::tidy::bugprone { namespace { /// matches a Decl if it has a "no return" attribute of any kind @@ -327,5 +326,4 @@ void InfiniteLoopCheck::check(const MatchFinder::MatchResult &Result) { } } -} // namespace tidy::bugprone -} // namespace clang +} // namespace clang::tidy::bugprone diff --git a/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp index 01276af6c7d8f..879040177079a 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.cpp @@ -153,8 +153,7 @@ unsigned MacroRepeatedPPCallbacks::countArgumentExpansions( // Count argument. if (TII == Arg) { Current++; - if (Current > Max) - Max = Current; + Max = std::max(Max, Current); } } return Max; diff --git a/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp index a45949314a4ca..0f2c18ae02663 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp @@ -248,7 +248,7 @@ void UnsafeFunctionsCheck::registerMatchers(MatchFinder *Finder) { FunctionNames.reserve(CustomFunctions.size()); for (const auto &Entry : CustomFunctions) - FunctionNames.push_back(Entry.Name); + FunctionNames.emplace_back(Entry.Name); auto CustomFunctionsMatcher = matchers::matchesAnyListedName(FunctionNames); diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp index 268b51f76a2c3..82fd3316b942a 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp @@ -81,7 +81,7 @@ AST_MATCHER_P(LambdaExpr, hasCaptureDefaultKind, LambdaCaptureDefault, Kind) { AST_MATCHER(VarDecl, hasIdentifier) { const IdentifierInfo *ID = Node.getIdentifier(); - return ID != NULL && !ID->isPlaceholder(); + return ID != nullptr && !ID->isPlaceholder(); } } // namespace diff --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp index cf81da816964f..d3eeb23ce4c91 100644 --- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp @@ -909,10 +909,12 @@ static bool areExprsSameMacroOrLiteral(const BinaryOperator *BinOp, // Left is macro so right macro too if (Rsr.getBegin().isMacroID()) { // Both sides are macros so they are same macro or literal - const llvm::StringRef L = Lexer::getSourceText( - CharSourceRange::getTokenRange(Lsr), SM, Context->getLangOpts(), 0); - const llvm::StringRef R = Lexer::getSourceText( - CharSourceRange::getTokenRange(Rsr), SM, Context->getLangOpts(), 0); + const llvm::StringRef L = + Lexer::getSourceText(CharSourceRange::getTokenRange(Lsr), SM, + Context->getLangOpts(), nullptr); + const llvm::StringRef R = + Lexer::getSourceText(CharSourceRange::getTokenRange(Rsr), SM, + Context->getLangOpts(), nullptr); return areStringsSameIgnoreSpaces(L, R); } // Left is macro but right is not so they are not same macro or literal diff --git a/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp index 9e4d184c4b6e1..e9b96c4016af6 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp @@ -161,7 +161,7 @@ matchTrailingTemplateParam(const FunctionTemplateDecl *FunctionTemplate) { const TemplateParameterList *TemplateParams = FunctionTemplate->getTemplateParameters(); - if (TemplateParams->size() == 0) + if (TemplateParams->empty()) return {}; const NamedDecl *LastParam = @@ -419,7 +419,7 @@ handleTrailingTemplateType(const FunctionTemplateDecl *FunctionTemplate, SourceRange RemovalRange; const TemplateParameterList *TemplateParams = FunctionTemplate->getTemplateParameters(); - if (!TemplateParams || TemplateParams->size() == 0) + if (!TemplateParams || TemplateParams->empty()) return {}; if (TemplateParams->size() == 1) { diff --git a/clang-tools-extra/clang-tidy/modernize/UseRangesCheck.h b/clang-tools-extra/clang-tidy/modernize/UseRangesCheck.h index 2f4cace653cf1..51327dab53e3d 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseRangesCheck.h +++ b/clang-tools-extra/clang-tidy/modernize/UseRangesCheck.h @@ -22,7 +22,7 @@ class UseRangesCheck : public utils::UseRangesCheck { public: UseRangesCheck(StringRef CheckName, ClangTidyContext *Context); - void storeOptions(ClangTidyOptions::OptionMap &Options) override; + void storeOptions(ClangTidyOptions::OptionMap &Opts) override; ReplacerMap getReplacerMap() const override; diff --git a/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp index 9c2fc9e06fb45..52e9a9f8d49e0 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp @@ -104,8 +104,7 @@ getTemplateLockGuardTypeLoc(const TypeSourceInfo *SourceInfo) { static SourceRange getLockGuardRange(const TypeSourceInfo *SourceInfo) { const TypeLoc LockGuardTypeLoc = SourceInfo->getTypeLoc(); - return SourceRange(LockGuardTypeLoc.getBeginLoc(), - LockGuardTypeLoc.getEndLoc()); + return {LockGuardTypeLoc.getBeginLoc(), LockGuardTypeLoc.getEndLoc()}; } // Find the exact source range of the 'lock_guard' name token @@ -115,8 +114,8 @@ static SourceRange getLockGuardNameRange(const TypeSourceInfo *SourceInfo) { if (!TemplateLoc) return {}; - return SourceRange(TemplateLoc.getTemplateNameLoc(), - TemplateLoc.getLAngleLoc().getLocWithOffset(-1)); + return {TemplateLoc.getTemplateNameLoc(), + TemplateLoc.getLAngleLoc().getLocWithOffset(-1)}; } const static StringRef UseScopedLockMessage = diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp index cf2fa1955ca1b..5cabc6df21da9 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp @@ -33,7 +33,7 @@ UseStdFormatCheck::UseStdFormatCheck(StringRef Name, ClangTidyContext *Context) areDiagsSelfContained()), MaybeHeaderToInclude(Options.get("FormatHeader")) { if (StrFormatLikeFunctions.empty()) - StrFormatLikeFunctions.push_back("absl::StrFormat"); + StrFormatLikeFunctions.emplace_back("absl::StrFormat"); if (!MaybeHeaderToInclude && ReplacementFormatFunction == "std::format") MaybeHeaderToInclude = "<format>"; diff --git a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp index 3b847f51d2173..ffbdb025848d7 100644 --- a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp +++ b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp @@ -102,7 +102,7 @@ void PropertyDeclarationCheck::registerMatchers(MatchFinder *Finder) { void PropertyDeclarationCheck::check(const MatchFinder::MatchResult &Result) { const auto *MatchedDecl = Result.Nodes.getNodeAs<ObjCPropertyDecl>("property"); - assert(MatchedDecl->getName().size() > 0); + assert(!MatchedDecl->getName().empty()); auto *DeclContext = MatchedDecl->getDeclContext(); auto *CategoryDecl = llvm::dyn_cast<ObjCCategoryDecl>(DeclContext); diff --git a/clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp b/clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp index 30df40bda57d8..d6784d0e8fba8 100644 --- a/clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp +++ b/clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp @@ -71,7 +71,7 @@ AST_MATCHER(CXXMethodDecl, usesThis) { } UsageOfThis; // TraverseStmt does not modify its argument. - UsageOfThis.TraverseStmt(const_cast<Stmt *>(Node.getBody())); + UsageOfThis.TraverseStmt(Node.getBody()); return UsageOfThis.Used; } diff --git a/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp b/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp index 85852c2c829a1..aace96f54c61c 100644 --- a/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp @@ -211,7 +211,7 @@ AST_MATCHER(CXXMethodDecl, usesThisAsConst) { FindUsageOfThis UsageOfThis(Finder->getASTContext()); // TraverseStmt does not modify its argument. - UsageOfThis.TraverseStmt(const_cast<Stmt *>(Node.getBody())); + UsageOfThis.TraverseStmt(Node.getBody()); return UsageOfThis.Usage == Const; } diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp index 9db059c26d6f2..5a04029e4a6fa 100644 --- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp @@ -217,7 +217,7 @@ static bool applyJaroWinklerHeuristic(StringRef Arg, StringRef Param, SmallVector<int, SmallVectorSize> ArgFlags(ArgLen); SmallVector<int, SmallVectorSize> ParamFlags(ParamLen); std::ptrdiff_t Range = - std::max(std::ptrdiff_t{0}, std::max(ArgLen, ParamLen) / 2 - 1); + std::max(std::ptrdiff_t{0}, (std::max(ArgLen, ParamLen) / 2) - 1); // Calculate matching characters. for (std::ptrdiff_t I = 0; I < ParamLen; ++I) @@ -260,7 +260,7 @@ static bool applyJaroWinklerHeuristic(StringRef Arg, StringRef Param, // Calculate common string prefix up to 4 chars. L = 0; for (std::ptrdiff_t I = 0; - I < std::min(std::min(ArgLen, ParamLen), std::ptrdiff_t{4}); ++I) + I < std::min({ArgLen, ParamLen, std::ptrdiff_t{4}}); ++I) if (tolower(Arg[I]) == tolower(Param[I])) ++L; diff --git a/clang-tools-extra/clang-tidy/utils/DesignatedInitializers.cpp b/clang-tools-extra/clang-tidy/utils/DesignatedInitializers.cpp index 6faeb7a0b76e1..6914ec2beb2fb 100644 --- a/clang-tools-extra/clang-tidy/utils/DesignatedInitializers.cpp +++ b/clang-tools-extra/clang-tidy/utils/DesignatedInitializers.cpp @@ -57,7 +57,7 @@ class AggregateDesignatorNames { } } // Returns false if the type was not an aggregate. - operator bool() { return Valid; } + operator bool() const { return Valid; } // Advance to the next element in the aggregate. void next() { if (IsArray) diff --git a/clang-tools-extra/clang-tidy/utils/HeaderGuard.cpp b/clang-tools-extra/clang-tidy/utils/HeaderGuard.cpp index 5b38ace13e2f2..53ce28e019f75 100644 --- a/clang-tools-extra/clang-tidy/utils/HeaderGuard.cpp +++ b/clang-tools-extra/clang-tidy/utils/HeaderGuard.cpp @@ -239,7 +239,9 @@ class HeaderGuardPPCallbacks : public PPCallbacks { Check->diag(StartLoc, "header is missing header guard") << FixItHint::CreateInsertion( - StartLoc, "#ifndef " + CPPVar + "\n#define " + CPPVar + "\n\n") + StartLoc, + (Twine("#ifndef ") + CPPVar + "\n#define " + CPPVar + "\n\n") + .str()) << FixItHint::CreateInsertion( SM.getLocForEndOfFile(FID), Check->shouldSuggestEndifComment(FileName) diff --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp index 9104723c7f1c0..6cf38ddf3d914 100644 --- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp +++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp @@ -30,11 +30,11 @@ template <> struct DenseMapInfo<clang::tidy::RenamerClangTidyCheck::NamingCheckId> { using NamingCheckId = clang::tidy::RenamerClangTidyCheck::NamingCheckId; - static inline NamingCheckId getEmptyKey() { + static NamingCheckId getEmptyKey() { return {DenseMapInfo<clang::SourceLocation>::getEmptyKey(), "EMPTY"}; } - static inline NamingCheckId getTombstoneKey() { + static NamingCheckId getTombstoneKey() { return {DenseMapInfo<clang::SourceLocation>::getTombstoneKey(), "TOMBSTONE"}; } diff --git a/clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp b/clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp index 16ee7ee79d75e..e421c9f11b24b 100644 --- a/clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp +++ b/clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp @@ -43,7 +43,7 @@ static std::string getFullPrefix(ArrayRef<UseRangesCheck::Indexes> Signature) { llvm::raw_string_ostream OS(Output); for (const UseRangesCheck::Indexes &Item : Signature) OS << Item.BeginArg << ":" << Item.EndArg << ":" - << (Item.ReplaceArg == Item.First ? '0' : '1'); + << (Item.ReplaceArg == UseRangesCheck::Indexes::First ? '0' : '1'); return Output; } @@ -194,7 +194,7 @@ static void removeFunctionArgs(DiagnosticBuilder &Diag, const CallExpr &Call, void UseRangesCheck::check(const MatchFinder::MatchResult &Result) { Replacer *Replacer = nullptr; const FunctionDecl *Function = nullptr; - for (auto [Node, Value] : Result.Nodes.getMap()) { + for (const auto &[Node, Value] : Result.Nodes.getMap()) { StringRef NodeStr(Node); if (!NodeStr.consume_front(FuncDecl)) continue; diff --git a/clang-tools-extra/clang-tidy/utils/UseRangesCheck.h b/clang-tools-extra/clang-tidy/utils/UseRangesCheck.h index 3a454bcf0cf07..a5ba6802dd89e 100644 --- a/clang-tools-extra/clang-tidy/utils/UseRangesCheck.h +++ b/clang-tools-extra/clang-tidy/utils/UseRangesCheck.h @@ -81,7 +81,7 @@ class UseRangesCheck : public ClangTidyCheck { void registerMatchers(ast_matchers::MatchFinder *Finder) final; void check(const ast_matchers::MatchFinder::MatchResult &Result) final; bool isLanguageVersionSupported(const LangOptions &LangOpts) const override; - void storeOptions(ClangTidyOptions::OptionMap &Options) override; + void storeOptions(ClangTidyOptions::OptionMap &Opts) override; std::optional<TraversalKind> getCheckTraversalKind() const override; private: >From c5d45756fb13f88b2d747a57f9f2d5658887b23f Mon Sep 17 00:00:00 2001 From: Victor Baranov <bar.victor.2...@gmail.com> Date: Thu, 10 Jul 2025 09:52:45 +0300 Subject: [PATCH 3/3] remove redundant nullptr in RedundantExpressionCheck --- .../clang-tidy/misc/RedundantExpressionCheck.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp index d3eeb23ce4c91..9b2af2a8ca7d8 100644 --- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp @@ -909,12 +909,10 @@ static bool areExprsSameMacroOrLiteral(const BinaryOperator *BinOp, // Left is macro so right macro too if (Rsr.getBegin().isMacroID()) { // Both sides are macros so they are same macro or literal - const llvm::StringRef L = - Lexer::getSourceText(CharSourceRange::getTokenRange(Lsr), SM, - Context->getLangOpts(), nullptr); - const llvm::StringRef R = - Lexer::getSourceText(CharSourceRange::getTokenRange(Rsr), SM, - Context->getLangOpts(), nullptr); + const llvm::StringRef L = Lexer::getSourceText( + CharSourceRange::getTokenRange(Lsr), SM, Context->getLangOpts()); + const llvm::StringRef R = Lexer::getSourceText( + CharSourceRange::getTokenRange(Rsr), SM, Context->getLangOpts()); return areStringsSameIgnoreSpaces(L, R); } // Left is macro but right is not so they are not same macro or literal _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits