[ItaniumDemangle] Add template name to the substitutions list during demangling #108538
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When demangling a template template parameter (
method<bool, Bar>(Bar<bool> b)
), the current demangler version first enters the template argument (bool
) into the substitutions list, then the whole template specialization (Bar<bool>
). The template name (Bar
) never becomes a substitution candidate on its own.This is different when mangling. Mangling
method<bool, Bar>(Bar<bool> b, Bar<int> i)
substitutes theBar
in the second parameter with the substitution forTemplateTemplateParmDecl
.This leads to a discrepancy between mangler and demangler, see #108009.