[clang-tools-extra] 2837370 - [clang-tidy][NFC] Fix a couple of suspicious StringRef::data() usages (#158480)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 15 22:01:53 PDT 2025
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;
More information about the cfe-commits
mailing list