https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79796
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Surprisingly my naïve attempt to fix this works: --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -8047,6 +8047,8 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) { arg = cp_build_indirect_ref (arg, RO_NULL, complain); val = build2 (MODIFY_EXPR, TREE_TYPE (to), to, arg); + if (cxx_dialect >= cxx14) + replace_placeholders (arg, to); } else { and the C++ testsuite passes.