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.