https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60608
--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> --- I'm going to save some debugging notes, mostly about non-variadic vs variadic. First one: the tsubst in fn_type_unification: fntype = tsubst (TREE_TYPE (fn), explicit_targs, complain | tf_partial, NULL_TREE); working on TREE_TYPE (fn) which has uses_template_parms true, returns a fntype which has uses_template_parms false in the non-variadic case, still true in the variadic case. Note that later uses_template_parms matters at the beginning of unify_one_argument.