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.

Reply via email to