[clang] [Clang] [C++26] Expansion Statements (Part 1: AST) (PR #169680)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 1 07:17:26 PST 2025


================
@@ -204,6 +204,13 @@ void CodeGenFunction::EmitStmt(const Stmt *S, ArrayRef<const Attr *> Attrs) {
   case Stmt::CXXForRangeStmtClass:
     EmitCXXForRangeStmt(cast<CXXForRangeStmt>(*S), Attrs);
     break;
+  case Stmt::CXXEnumeratingExpansionStmtPatternClass:
+  case Stmt::CXXIteratingExpansionStmtPatternClass:
+  case Stmt::CXXDestructuringExpansionStmtPatternClass:
+  case Stmt::CXXDependentExpansionStmtPatternClass:
+    llvm_unreachable("unexpanded expansion statements should not be emitted");
+  case Stmt::CXXExpansionStmtInstantiationClass:
+    llvm_unreachable("Todo");
----------------
erichkeane wrote:

I think we have an error mechanism for this?  Also, it should be `TODO`, capital makes these sorts of things greppable.

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


More information about the cfe-commits mailing list