Author: Benjamin Kramer
Date: 2026-01-02T18:48:17+01:00
New Revision: e2ee738b6d8441f9fcdd31004fa99035c4c95714

URL: 
https://github.com/llvm/llvm-project/commit/e2ee738b6d8441f9fcdd31004fa99035c4c95714
DIFF: 
https://github.com/llvm/llvm-project/commit/e2ee738b6d8441f9fcdd31004fa99035c4c95714.diff

LOG: Retire StrInStrNoCase. NFC.

Added: 
    

Modified: 
    clang/lib/Analysis/RetainSummaryManager.cpp
    clang/lib/StaticAnalyzer/Core/CallEvent.cpp
    llvm/include/llvm/ADT/StringExtras.h
    llvm/lib/Support/StringExtras.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Analysis/RetainSummaryManager.cpp 
b/clang/lib/Analysis/RetainSummaryManager.cpp
index 688efe40875d2..b622027ee7e1e 100644
--- a/clang/lib/Analysis/RetainSummaryManager.cpp
+++ b/clang/lib/Analysis/RetainSummaryManager.cpp
@@ -474,14 +474,13 @@ const RetainSummary 
*RetainSummaryManager::getSummaryForObjCOrCFObject(
       // "AppendValue", or "SetAttribute", then we assume that arguments may
       // "escape."  This means that something else holds on to the object,
       // allowing it be used even after its local retain count drops to 0.
-      ArgEffectKind E =
-          (StrInStrNoCase(FName, "InsertValue") != StringRef::npos ||
-           StrInStrNoCase(FName, "AddValue") != StringRef::npos ||
-           StrInStrNoCase(FName, "SetValue") != StringRef::npos ||
-           StrInStrNoCase(FName, "AppendValue") != StringRef::npos ||
-           StrInStrNoCase(FName, "SetAttribute") != StringRef::npos)
-              ? MayEscape
-              : DoNothing;
+      ArgEffectKind E = (FName.contains_insensitive("InsertValue") ||
+                         FName.contains_insensitive("AddValue") ||
+                         FName.contains_insensitive("SetValue") ||
+                         FName.contains_insensitive("AppendValue") ||
+                         FName.contains_insensitive("SetAttribute"))
+                            ? MayEscape
+                            : DoNothing;
 
       return getPersistentSummary(RetEffect::MakeNoRet(), ScratchArgs,
                                   ArgEffect(DoNothing), ArgEffect(E, 
ObjKind::CF));

diff  --git a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp 
b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
index 3c0e2641e65fe..c70a4af2eabb5 100644
--- a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+++ b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
@@ -668,12 +668,12 @@ bool AnyFunctionCall::argumentsMayEscape() const {
   // - Many CF containers allow objects to escape through custom
   //   allocators/deallocators upon container construction. (PR12101)
   if (FName.starts_with("CF") || FName.starts_with("CG")) {
-    return StrInStrNoCase(FName, "InsertValue")  != StringRef::npos ||
-           StrInStrNoCase(FName, "AddValue")     != StringRef::npos ||
-           StrInStrNoCase(FName, "SetValue")     != StringRef::npos ||
-           StrInStrNoCase(FName, "WithData")     != StringRef::npos ||
-           StrInStrNoCase(FName, "AppendValue")  != StringRef::npos ||
-           StrInStrNoCase(FName, "SetAttribute") != StringRef::npos;
+    return FName.contains_insensitive("InsertValue") ||
+           FName.contains_insensitive("AddValue") ||
+           FName.contains_insensitive("SetValue") ||
+           FName.contains_insensitive("WithData") ||
+           FName.contains_insensitive("AppendValue") ||
+           FName.contains_insensitive("SetAttribute");
   }
 
   return false;

diff  --git a/llvm/include/llvm/ADT/StringExtras.h 
b/llvm/include/llvm/ADT/StringExtras.h
index abdf5337d68b2..0cc6d0868b2ce 100644
--- a/llvm/include/llvm/ADT/StringExtras.h
+++ b/llvm/include/llvm/ADT/StringExtras.h
@@ -354,11 +354,6 @@ inline std::string toString(const APSInt &I, unsigned 
Radix) {
   return toString(I, Radix, I.isSigned());
 }
 
-/// StrInStrNoCase - Portable version of strcasestr.  Locates the first
-/// occurrence of string 's1' in string 's2', ignoring case.  Returns
-/// the offset of s2 in s1 or npos if s2 cannot be found.
-LLVM_ABI StringRef::size_type StrInStrNoCase(StringRef s1, StringRef s2);
-
 /// getToken - This function extracts one token from source, ignoring any
 /// leading characters that appear in the Delimiters string, and ending the
 /// token at any of the characters that appear in the Delimiters string.  If

diff  --git a/llvm/lib/Support/StringExtras.cpp 
b/llvm/lib/Support/StringExtras.cpp
index 5058c08aff64a..bb2fa49bcbbc9 100644
--- a/llvm/lib/Support/StringExtras.cpp
+++ b/llvm/lib/Support/StringExtras.cpp
@@ -17,19 +17,6 @@
 
 using namespace llvm;
 
-/// StrInStrNoCase - Portable version of strcasestr.  Locates the first
-/// occurrence of string 's1' in string 's2', ignoring case.  Returns
-/// the offset of s2 in s1 or npos if s2 cannot be found.
-StringRef::size_type llvm::StrInStrNoCase(StringRef s1, StringRef s2) {
-  size_t N = s2.size(), M = s1.size();
-  if (N > M)
-    return StringRef::npos;
-  for (size_t i = 0, e = M - N + 1; i != e; ++i)
-    if (s1.substr(i, N).equals_insensitive(s2))
-      return i;
-  return StringRef::npos;
-}
-
 /// getToken - This function extracts one token from source, ignoring any
 /// leading characters that appear in the Delimiters string, and ending the
 /// token at any of the characters that appear in the Delimiters string.  If


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to