.. maybe one final piece of information for today.
I'm trying to figure out where the very different args argument is
coming from.
Both in 4.5 and in mainline we have the same final chain of
tusbst_copy_build, preceded by tsubst_copy_and_build, tusbst_expr,
tsubt, tsubst_template_arg, the args argument remains the same all the way.
Earlier than that things are different: in mainline the same args, as
arglist, comes from fixup_template_parm, and earlier we have
fixup_template_parms which creates the arglist itself, even earlier the
parser.
In 4.5 before tsubst_template_arg we have coerce_template_parms, which
changes its args argument to the final value, and before that
lookup_template_class, finish_template_type, the parser.
Paolo.