[clang] [Sema] Fix computations of "unexpanded packs" in substituted lambdas (PR #99882)

via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 22 10:04:38 PDT 2024


================
@@ -353,7 +353,11 @@ Sema::DiagnoseUnexpandedParameterPacks(SourceLocation Loc,
       }
 
       if (!EnclosingStmtExpr) {
-        LSI->ContainsUnexpandedParameterPack = true;
+        // It is ok to have unexpanded packs in captures, template parameters
+        // and parameters too, but only the body statement does not store this
+        // flag, so we have to propagate it through LamdaScopeInfo.
+        if (LSI->AfterParameterList)
+          LSI->BodyContainsUnexpandedParameterPack = true;
----------------
cor3ntin wrote:

It's shallow but it's also work that we could avoid doing entirely - at least during parsing just by not having this if.

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


More information about the cfe-commits mailing list