[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