https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86521

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Jason Merrill
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:f93784da474823ad563a9dfd6fd535a017b4bc9f

commit r8-10078-gf93784da474823ad563a9dfd6fd535a017b4bc9f
Author: Jason Merrill <ja...@redhat.com>
Date:   Wed Feb 26 00:33:52 2020 -0500

    PR c++/86521 - wrong overload resolution with ref-qualifiers.

    Here we were wrongly treating binding a const lvalue ref to an xvalue as
    direct binding, which is wrong under [dcl.init.ref] and [over.match.ref].

    gcc/cp/ChangeLog
    2020-02-26  Jason Merrill  <ja...@redhat.com>

        PR c++/86521 - wrong overload resolution with ref-qualifiers.
        * call.c (build_user_type_conversion_1): Don't use a conversion to a
        reference of the wrong rvalueness for direct binding.

--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Jason Merrill
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:32988aac5be4fa472823e21d2d0eb877faca5667

commit r8-10080-g32988aac5be4fa472823e21d2d0eb877faca5667
Author: Jason Merrill <ja...@redhat.com>
Date:   Wed Feb 26 00:33:52 2020 -0500

    PR c++/86521 - C++17 copy elision in initialization by constructor.

    This is an overlooked case in C++17 mandatory copy elision: We want
overload
    resolution to reflect that initializing an object from a prvalue does not
    involve a copy or move constructor even when [over.match.ctor] says that
    only constructors are candidates.  Here I implement that by looking through
    the copy/move constructor in joust.

    gcc/cp/ChangeLog
    2020-02-26  Jason Merrill  <ja...@redhat.com>

        PR c++/86521 - C++17 copy elision in initialization by constructor.
        * call.c (joust_maybe_elide_copy): New.
        (joust): Call it.

Reply via email to