Support extended C++20 template-param qualifier forms#315
Open
kristjanvalur wants to merge 5 commits intogimli-rs:masterfrom
Open
Support extended C++20 template-param qualifier forms#315kristjanvalur wants to merge 5 commits intogimli-rs:masterfrom
kristjanvalur wants to merge 5 commits intogimli-rs:masterfrom
Conversation
This was referenced Apr 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Motivation and Context
This is one part of a larger C++20 Itanium compatibility effort derived from real-world symbol corpus failures.
These C++20-oriented changes are intentionally split into three PRs for reviewability:
This PR isolates qualifier-form parsing support so reviewers can evaluate syntax-surface changes independently.
What "Template-Parameter Qualifier Mangling" Means
In this PR, "template-parameter qualifier mangling" refers to Itanium mangling markers that qualify or annotate a template parameter declaration while encoding template arguments (for example forms using
Tk,Tt,Tp,Ty).These encodings are related to C++20 source-level constructs (such as constrained template parameters, abbreviated templates, and placeholder
autoforms), but they are not always a 1:1 printable syntax token from source text. In practice:So the short answer is: they are used when mangling certain C++20 constructs, and may represent either direct source-level intent or normalized compiler-internal encoding detail, depending on context.
Scope