https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100635
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-05-17
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Alternatively, remove "non-const" from the ref_type and add "volatile" to the
expr type:
vol.C:3:31: error: cannot bind lvalue reference of type 'const volatile
int&' to an rvalue of volatile type 'volatile int'
I'll test this:
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -7900,6 +7900,10 @@ convert_like_internal (conversion *convs, tree expr,
tree fn, int argnum,
"type %qH to a value of type %qI",
totype, next->type);
}
+ else if (CP_TYPE_CONST_P (TREE_TYPE (ref_type)))
+ error_at (loc, "cannot bind lvalue reference of type "
+ "%qH to an rvalue of volatile type %qI", totype,
+ extype);
else
error_at (loc, "cannot bind non-const lvalue reference of "
"type %qH to an rvalue of type %qI", totype,
extype);