================
@@ -2413,3 +2413,49 @@ void owner_outlives_lifetimebound_source() {
}
} // namespace track_origins_for_lifetimebound_record_type
+
+namespace gslpointer_construction_from_lifetimebound {
+// https://github.com/llvm/llvm-project/issues/175898
+struct Bar {};
+template <typename T> struct [[gsl::Pointer]] Pointer {
+ Pointer();
+ Pointer(const T &bar [[clang::lifetimebound]]);
+ Pointer(const Pointer<T> &p);
+ const T &operator*() const [[clang::lifetimebound]];
+};
+
+template <typename T> void use(T);
+
+void local_pointer() {
+ Pointer<int> p;
+ {
+ int v{};
----------------
usx95 wrote:
nit: let's skip the braced init. `s/int v{};/int v`. Same for below.
https://github.com/llvm/llvm-project/pull/189907
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits