[clang] [Clang] [C++26] Implement P1306R5 Expansion Statements (PR #165195)

via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 3 06:33:09 PST 2025


================
@@ -177,6 +185,11 @@ def CoyieldExpr : StmtNode<CoroutineSuspendExpr>;
 def ConceptSpecializationExpr : StmtNode<Expr>;
 def RequiresExpr : StmtNode<Expr>;
 
+// C++26 Expansion statement support expressions
+def CXXExpansionInitListExpr : StmtNode<Expr>;
+def CXXExpansionInitListSelectExpr : StmtNode<Expr>;
+def CXXDestructuringExpansionSelectExpr : StmtNode<Expr>;
----------------
Sirraide wrote:

> short of just storing the `CXXExpansionInitListExpr*`/`DecompositionDecl*` as a `void*` and just adding a `bool IsExpansionInitList` member to it

I guess we could make it a `PointerIntPair<PointerUnion<CXXExpansionInitListExpr*, DecompositionDecl*>, 1>?

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


More information about the cfe-commits mailing list