http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
--- Comment #1 from Paul Smith <pl.smith.mail at gmail dot com> 2013-02-18 16:12:00 UTC --- Looks like this was introduced in rev. 190664, with the merging of 'deduction_tsubst_fntype' into 'fn_type_unification'. The instantiation context is constructed with 'targs' as the vector of template arguments, which is still empty when substituting the explicit arguments into the function type the first time. This can be fixed by either constructing the instantiation context using 'explicit_targs' when non-null, or by copying 'explicit_targs' into 'targs' before the substitution.