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