https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72580
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |8.0 Resolution|INVALID |FIXED --- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- This was changed by r251035 an compiles since GCC 8.1: PR c++/80452 - Core 1579, implicit move semantics on return/throw * cp-tree.h (LOOKUP_PREFER_RVALUE): Now means that we've already tentatively changed the lvalue to an rvalue. * call.c (reference_binding): Remove LOOKUP_PREFER_RVALUE handling. (build_over_call): If LOOKUP_PREFER_RVALUE, check that the first parameter is an rvalue reference. * except.c (build_throw): Do maybe-rvalue overload resolution twice. * typeck.c (check_return_expr): Likewise. When the lookup using an rvalue fails it now gets retried as an lvalue, instead of giving an error.