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

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Fri Jan 18 20:35:57 2019
New Revision: 268085

URL: https://gcc.gnu.org/viewcvs?rev=268085&root=gcc&view=rev
Log:
        PR c++/88875 - error with explicit list constructor.

In my patch for CWG issue 2267, I changed reference_binding to clear
CONSTRUCTOR_IS_DIRECT_INIT on the argument init-list.  But that breaks if
there's another candidate for which CONSTRUCTOR_IS_DIRECT_INIT is correct.
So instead, let's encode in the conversion that we want to override the
flag.

        * call.c (reference_binding): Don't modify EXPR.  Set
        need_temporary_p on the ck_user conversion for a temporary.
        (convert_like_real): Check it.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/initlist-explicit2.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/call.c

Reply via email to