================
@@ -154,3 +154,26 @@ int g() {
     static_assert(f(arr) == 5);
 }
 }
+
+namespace GH128409 {
+  int &ff();
+  int &x = ff(); // nointerpreter-note {{declared here}}
+  constinit int &z = x; // expected-error {{variable does not have a constant 
initializer}}
+                        // expected-note@-1 {{required by 'constinit' 
specifier here}}
+                        // nointerpreter-note@-2 {{initializer of 'x' is not a 
constant expression}}
----------------
efriedma-quic wrote:

Both clang and gcc accept the following:

```
int y;
int &r1 = y;
constinit int &r2 = r1;
```

I think that's right, looking at the rules for "potentially-constant" variables?

https://github.com/llvm/llvm-project/pull/129952
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to