[clang] [Clang][P1061] Add stuctured binding packs (PR #121417)

via cfe-commits cfe-commits at lists.llvm.org
Sun Jan 26 02:48:18 PST 2025


================
@@ -2484,6 +2489,16 @@ TemplateInstantiator::TransformDeclRefExpr(DeclRefExpr *E) {
     if (PD->isParameterPack())
       return TransformFunctionParmPackRefExpr(E, PD);
 
+  if (BindingDecl *BD = dyn_cast<BindingDecl>(D); BD && BD->isParameterPack()) {
+    BD = cast_or_null<BindingDecl>(TransformDecl(BD->getLocation(), BD));
+    if (!BD)
+      return ExprError();
+    if (auto *RP =
+            dyn_cast_if_present<ResolvedUnexpandedPackExpr>(BD->getBinding())) {
+      return TransformResolvedUnexpandedPackExpr(RP);
+    }
+  }
+
----------------
cor3ntin wrote:

```suggestion
    if (auto *RP =
            dyn_cast_if_present<ResolvedUnexpandedPackExpr>(BD->getBinding()))
      return TransformResolvedUnexpandedPackExpr(RP);
  }

```

https://github.com/llvm/llvm-project/pull/121417


More information about the cfe-commits mailing list