[libcxx-commits] [clang] [libcxxabi] [llvm] [WIP][Clang] Mangling of pack indexing type and expression for itanium (PR #123513)
Timm Baeder via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jan 19 06:47:40 PST 2025
================
@@ -4785,6 +4790,19 @@ void CXXNameMangler::mangleRequirement(SourceLocation RequiresExprLoc,
}
}
+void CXXNameMangler::mangleReferenceToPack(const NamedDecl* Pack) {
+ if (const TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(Pack))
+ mangleTemplateParameter(TTP->getDepth(), TTP->getIndex());
+ else if (const NonTypeTemplateParmDecl *NTTP
+ = dyn_cast<NonTypeTemplateParmDecl>(Pack))
+ mangleTemplateParameter(NTTP->getDepth(), NTTP->getIndex());
+ else if (const TemplateTemplateParmDecl *TempTP
+ = dyn_cast<TemplateTemplateParmDecl>(Pack))
----------------
tbaederr wrote:
```suggestion
if (const auto *TTP = dyn_cast<TemplateTypeParmDecl>(Pack))
mangleTemplateParameter(TTP->getDepth(), TTP->getIndex());
else if (const auto *NTTP
= dyn_cast<NonTypeTemplateParmDecl>(Pack))
mangleTemplateParameter(NTTP->getDepth(), NTTP->getIndex());
else if (const auto *TempTP
= dyn_cast<TemplateTemplateParmDecl>(Pack))
```
https://github.com/llvm/llvm-project/pull/123513
More information about the libcxx-commits
mailing list