Author: Utkarsh Saxena
Date: 2026-09-29T10:59:07Z
New Revision: 84c14dac5c730f5b888b42193d252eb41cc77247

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

LOG: [LifetimeSafety] Add negative-test for `lifetime_capture_by_this` on 
constructors (#227251)

Added: 
    

Modified: 
    clang/test/Sema/LifetimeSafety/safety.cpp

Removed: 
    


################################################################################
diff  --git a/clang/test/Sema/LifetimeSafety/safety.cpp 
b/clang/test/Sema/LifetimeSafety/safety.cpp
index fb91fb30713db..cd16a4d723f84 100644
--- a/clang/test/Sema/LifetimeSafety/safety.cpp
+++ b/clang/test/Sema/LifetimeSafety/safety.cpp
@@ -4099,6 +4099,28 @@ struct Helper {
 };
 } // namespace off_by_one_crash
 
+// FIXME(GH227246): Support capture_by_this on constructors without inference 
of lifetimebound.
+namespace constructor_test {
+struct Item {};
+
+struct Container {
+  const Item* saved;
+  Container() = default;
+  Container(const Item& item [[clang::lifetime_capture_by_this]]) {
+    saved = &item;
+  }
+};
+
+void test() {
+  Container c;
+  {
+    Item item;
+    c = Container(item); // tu-warning {{local variable 'item' does not live 
long enough}}
+  }                      // tu-note {{local variable 'item' is destroyed here}}
+  use(c);                // tu-note {{later used here}}
+}
+} // namespace constructor_test
+
 struct [[gsl::Pointer()]] PtrWithInt { int x; };
 PtrWithInt f() {
   return PtrWithInt{10};


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

Reply via email to