https://github.com/capitan-davide updated https://github.com/llvm/llvm-project/pull/158480
>From d70698939c4a7bb43c2eba139852079b6d3b3bcd Mon Sep 17 00:00:00 2001 From: Davide Cunial <dcun...@proton.me> Date: Sun, 14 Sep 2025 15:16:17 +0200 Subject: [PATCH 1/2] [clang-tidy] Fix a couple of suspicious StringRef::data() usages --- .../clang-tidy/modernize/UseEqualsDefaultCheck.cpp | 2 +- .../clang-tidy/readability/IdentifierNamingCheck.cpp | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp index f0c541eaca0a0..cf31f4a1a4c8d 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp @@ -204,7 +204,7 @@ static bool bodyEmpty(const ASTContext *Context, const CompoundStmt *Body) { CharSourceRange::getCharRange(Body->getLBracLoc().getLocWithOffset(1), Body->getRBracLoc()), Context->getSourceManager(), Context->getLangOpts(), &Invalid); - return !Invalid && std::strspn(Text.data(), " \t\r\n") == Text.size(); + return !Invalid && Text.ltrim(" \t\r\n").empty(); } UseEqualsDefaultCheck::UseEqualsDefaultCheck(StringRef Name, diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp index c8b62211c4b2e..4935a1a833fbd 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp @@ -337,8 +337,7 @@ std::string IdentifierNamingCheck::HungarianNotation::getDeclTypeName( // Remove keywords for (StringRef Kw : Keywords) { - for (size_t Pos = 0; - (Pos = Type.find(Kw.data(), Pos)) != std::string::npos;) { + for (size_t Pos = 0; (Pos = Type.find(Kw, Pos)) != std::string::npos;) { Type.replace(Pos, Kw.size(), ""); } } @@ -373,7 +372,7 @@ std::string IdentifierNamingCheck::HungarianNotation::getDeclTypeName( " int", " char", " double", " long", " short"}; bool RedundantRemoved = false; for (auto Kw : TailsOfMultiWordType) { - size_t Pos = Type.rfind(Kw.data()); + size_t Pos = Type.rfind(Kw); if (Pos != std::string::npos) { const size_t PtrCount = getAsteriskCount(Type, ND); Type = Type.substr(0, Pos + Kw.size() + PtrCount); @@ -602,9 +601,8 @@ std::string IdentifierNamingCheck::HungarianNotation::getDataTypePrefix( if (PtrCount > 0) { ModifiedTypeName = [&](std::string Str, StringRef From, StringRef To) { size_t StartPos = 0; - while ((StartPos = Str.find(From.data(), StartPos)) != - std::string::npos) { - Str.replace(StartPos, From.size(), To.data()); + while ((StartPos = Str.find(From, StartPos)) != std::string::npos) { + Str.replace(StartPos, From.size(), To); StartPos += To.size(); } return Str; >From c5279c1db464cd619c511e428f79cb3297e00288 Mon Sep 17 00:00:00 2001 From: Davide Cunial <dcun...@proton.me> Date: Sun, 14 Sep 2025 20:45:42 +0200 Subject: [PATCH 2/2] [clang-tidy] Apply suggestions from code review --- clang-tools-extra/clang-tidy/.clang-tidy | 1 - clang-tools-extra/clang-tidy/ClangTidyOptions.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy index d290901730405..0c2f34b529016 100644 --- a/clang-tools-extra/clang-tidy/.clang-tidy +++ b/clang-tools-extra/clang-tidy/.clang-tidy @@ -5,7 +5,6 @@ Checks: > -bugprone-branch-clone, -bugprone-easily-swappable-parameters, -bugprone-narrowing-conversions, - -bugprone-suspicious-stringview-data-usage, -bugprone-unchecked-optional-access, -bugprone-unused-return-value, modernize-*, diff --git a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp index e59f157b468bc..d27075610b0ef 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp @@ -99,7 +99,10 @@ void yamlize(IO &IO, ClangTidyOptions::OptionMap &Val, bool, for (auto &Option : SortedOptions) { bool UseDefault = false; void *SaveInfo = nullptr; + // NOLINTBEGIN(bugprone-suspicious-stringview-data-usage): Requires + // 'llvm::yaml::IO' to accept 'StringRef' IO.preflightKey(Option.first.data(), true, false, UseDefault, SaveInfo); + // NOLINTEND IO.scalarString(Option.second, needsQuotes(Option.second)); IO.postflightKey(SaveInfo); } @@ -116,7 +119,10 @@ void yamlize(IO &IO, ClangTidyOptions::OptionMap &Val, bool, } else if (isa<MappingNode>(I.getCurrentNode())) { IO.beginMapping(); for (StringRef Key : IO.keys()) { + // NOLINTBEGIN(bugprone-suspicious-stringview-data-usage): Requires + // 'llvm::yaml::IO' to accept 'StringRef' IO.mapRequired(Key.data(), Val[Key].Value); + // NOLINTEND } IO.endMapping(); } else { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits