https://github.com/usx95 created 
https://github.com/llvm/llvm-project/pull/186989

None

>From 014c80c4869150b736867aff1c2cfd6846c978bd Mon Sep 17 00:00:00 2001
From: Utkarsh Saxena <[email protected]>
Date: Tue, 17 Mar 2026 10:02:13 +0000
Subject: [PATCH] 186817

---
 clang/lib/Sema/SemaAttr.cpp                      | 2 ++
 clang/test/Sema/Inputs/lifetime-analysis.h       | 3 +++
 clang/test/Sema/warn-lifetime-analysis-nocfg.cpp | 5 +++++
 3 files changed, 10 insertions(+)

diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp
index 55111ca6a7cfe..7c79f954e6743 100644
--- a/clang/lib/Sema/SemaAttr.cpp
+++ b/clang/lib/Sema/SemaAttr.cpp
@@ -320,6 +320,8 @@ void Sema::inferLifetimeCaptureByAttribute(FunctionDecl 
*FD) {
       "insert", "insert_or_assign", "push", "push_front", "push_back"};
   if (!CapturingMethods.contains(MD->getName()))
     return;
+  if (MD->getName() == "insert" && MD->getParent()->getName() == 
"basic_string")
+    return;
   Annotate(MD);
 }
 
diff --git a/clang/test/Sema/Inputs/lifetime-analysis.h 
b/clang/test/Sema/Inputs/lifetime-analysis.h
index 56cacdd964f79..0b6bdaef83f9d 100644
--- a/clang/test/Sema/Inputs/lifetime-analysis.h
+++ b/clang/test/Sema/Inputs/lifetime-analysis.h
@@ -176,6 +176,9 @@ struct basic_string {
   basic_string& operator+=(const basic_string&);
   basic_string& operator+=(const T*);
   void push_back(T);
+
+  template<class StringViewLike> basic_string& insert(size_t index, const 
StringViewLike&);
+
   void clear();
   const T *c_str() const;
   operator basic_string_view<T> () const;
diff --git a/clang/test/Sema/warn-lifetime-analysis-nocfg.cpp 
b/clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
index 3305e9e270d86..4996664d26452 100644
--- a/clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+++ b/clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
@@ -1287,3 +1287,8 @@ void test() {
     const auto ptrTSC = StringTemplateSpecC<char>().data();  // Both have 
attribute         // expected-warning {{temporary whose address is used}}
 }
 } // namespace GH175391
+
+void string_insert_GH_186817() {
+    std::string msg;
+    msg.insert(0, std::string_view(std::string("a temporary")));
+}

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

Reply via email to