[clang] [Clang] Don't assert on substituted-but-yet-expanded packs for nested lambdas (PR #112896)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 21 07:18:00 PDT 2024
================
@@ -8385,14 +8385,19 @@ TreeTransform<Derived>::TransformDeclStmt(DeclStmt *S) {
if (Transformed != D)
DeclChanged = true;
- if (LSI && isa<TypeDecl>(Transformed))
- LSI->ContainsUnexpandedParameterPack |=
- getSema()
- .getASTContext()
- .getTypeDeclType(cast<TypeDecl>(Transformed))
- .getCanonicalType()
- .getTypePtr()
- ->containsUnexpandedParameterPack();
+ if (LSI) {
+ if (auto *TD = dyn_cast<TypeDecl>(Transformed))
+ LSI->ContainsUnexpandedParameterPack |=
+ getSema()
+ .getASTContext()
+ .getTypeDeclType(TD)
+ .getCanonicalType()
+ ->containsUnexpandedParameterPack();
+
+ if (auto *VD = dyn_cast<VarDecl>(Transformed))
+ LSI->ContainsUnexpandedParameterPack |=
+ VD->getType()->containsUnexpandedParameterPack();
+ }
----------------
cor3ntin wrote:
Haha, this is mostly a "gosh, this is getting unwieldy, i wonder if there is a better way", rather than a request for a change. I was referring to this https://github.com/llvm/llvm-project/issues/9395#issuecomment-980892278
https://github.com/llvm/llvm-project/pull/112896
More information about the cfe-commits
mailing list