For the Itanium ABI, this implements the mangling rule suggested in
https://github.com/itanium-cxx-abi/cxx-abi/issues/47, namely mangling
such template arguments as being cast to the parameter type in the case
where the template name is overloadable. This can cause a mangling
change for rare cases, where
- the template argument declaration is converted from its declared type to the type of the template parameter, and
- the template parameter either has a deduced type, is a parameter of a function template.
However, such changes are necessary to avoid mangling collisions. The
ABI changes can be reversed with -fclang-abi-compat=11 or earlier.
Passing a null TemplateName here causes these to get the unresolved treatment, which means mangling the exact type, right? I guess it just never matters for integer arguments?