Author: capitan-davide Date: 2025-09-16T08:01:49+03:00 New Revision: 28373708280a52ecd3181591f7c3935ffceafbcc
URL: https://github.com/llvm/llvm-project/commit/28373708280a52ecd3181591f7c3935ffceafbcc DIFF: https://github.com/llvm/llvm-project/commit/28373708280a52ecd3181591f7c3935ffceafbcc.diff LOG: [clang-tidy][NFC] Fix a couple of suspicious StringRef::data() usages (#158480) Closes https://github.com/llvm/llvm-project/issues/156150 Updates a couple of clang-tidy checks to use C++17 `std::string` member functions that accepts a `StringViewLike` template parameter. Added: Modified: clang-tools-extra/clang-tidy/.clang-tidy clang-tools-extra/clang-tidy/ClangTidyOptions.cpp clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp Removed: ################################################################################ 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 c697a7a3b00bd..dfa3521a25513 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp @@ -99,6 +99,8 @@ void yamlize(IO &IO, ClangTidyOptions::OptionMap &Val, bool, for (auto &Option : SortedOptions) { bool UseDefault = false; void *SaveInfo = nullptr; + // Requires 'llvm::yaml::IO' to accept 'StringRef' + // NOLINTNEXTLINE(bugprone-suspicious-stringview-data-usage) IO.preflightKey(Option.first.data(), true, false, UseDefault, SaveInfo); IO.scalarString(Option.second, needsQuotes(Option.second)); IO.postflightKey(SaveInfo); @@ -116,6 +118,8 @@ void yamlize(IO &IO, ClangTidyOptions::OptionMap &Val, bool, } else if (isa<MappingNode>(I.getCurrentNode())) { IO.beginMapping(); for (StringRef Key : IO.keys()) { + // Requires 'llvm::yaml::IO' to accept 'StringRef' + // NOLINTNEXTLINE(bugprone-suspicious-stringview-data-usage) IO.mapRequired(Key.data(), Val[Key].Value); } IO.endMapping(); diff --git a/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp index 998703bfc552d..d6ddbb69f7b0d 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 af85f251da14b..5178bee5c3374 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; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
