Skip to content

Support extended C++20 template-param qualifier forms#315

Open
kristjanvalur wants to merge 5 commits intogimli-rs:masterfrom
kristjanvalur:pr2b-cxx20-template-param-forms
Open

Support extended C++20 template-param qualifier forms#315
kristjanvalur wants to merge 5 commits intogimli-rs:masterfrom
kristjanvalur:pr2b-cxx20-template-param-forms

Conversation

@kristjanvalur
Copy link
Copy Markdown

@kristjanvalur kristjanvalur commented Apr 15, 2026

Summary

  • support additional C++20 template-parameter qualifier mangling forms

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 auto forms), but they are not always a 1:1 printable syntax token from source text. In practice:

  • some forms correspond fairly directly to C++ syntax concepts (for example constrained/placeholder parameter declarations), and
  • some appear as ABI/compiler-lowering detail used to preserve semantic context during mangling.

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

  • parser support for extended C++20 template-parameter qualifier encodings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant