[clang] [clang] Fix the post-filtering heuristic for GSLPointer. (PR #114044)

Utkarsh Saxena via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 5 08:39:55 PST 2024


================
@@ -798,10 +798,28 @@ void test13() {
 namespace LifetimeboundInterleave {
 
 const std::string& Ref(const std::string& abc [[clang::lifetimebound]]);
+
+std::string_view TakeSv(std::string_view abc [[clang::lifetimebound]]);
+std::string_view TakeStrRef(const std::string& abc [[clang::lifetimebound]]);
+std::string_view TakeStr(std::string abc [[clang::lifetimebound]]);
+
 std::string_view test1() {
   std::string_view t1 = Ref(std::string()); // expected-warning {{object backing}}
   t1 = Ref(std::string()); // expected-warning {{object backing}}
   return Ref(std::string()); // expected-warning {{returning address}}
+  
+  std::string_view t2 = TakeSv(std::string()); // expected-warning {{object backing}}
+  t2 = TakeSv(std::string()); // expected-warning {{object backing}}
+  return TakeSv(std::string()); // expected-warning {{returning address}}
+
+  std::string_view t3 = TakeStrRef(std::string()); // expected-warning {{temporary}}
+  t3 = TakeStrRef(std::string()); // expected-warning {{object backing}}
+  return TakeStrRef(std::string()); // expected-warning {{returning address}}
+
+
----------------
usx95 wrote:

nit: delete extra new line

https://github.com/llvm/llvm-project/pull/114044


More information about the cfe-commits mailing list