t3nsor wrote:
> @t3nsor Do you know the reason for the "not enclosed in parameters" in
> https://eel.is/c++draft/expr.unary.op#4 ?
No I don't. If I had to guess, it might be because adding parentheses is
intended to be used as a way to not create a pointer to member (and instead get
an ordina
@@ -8340,8 +8340,17 @@ void Sema::checkInitializerLifetime(const
InitializedEntity &Entity,
<< Entity.getType()->isReferenceType() << CLE->getInitializer() <<
2
<< DiagRange;
} else {
-Diag(DiagLoc, diag::warn_ret_local_temp_addr_ref)
-
@@ -8340,8 +8340,17 @@ void Sema::checkInitializerLifetime(const
InitializedEntity &Entity,
<< Entity.getType()->isReferenceType() << CLE->getInitializer() <<
2
<< DiagRange;
} else {
-Diag(DiagLoc, diag::warn_ret_local_temp_addr_ref)
-
@@ -177,3 +177,50 @@ namespace extern_reference_used_as_unknown {
int y;
constinit int& g = (x,y); // expected-warning {{left operand of comma
operator has no effect}}
}
+
+namespace uninit_reference_used {
+ int y;
+ constexpr int &r = r; // expected-error {{must be ini