[clang] [Clang] Fix Handling of Init Capture with Parameter Packs in LambdaScopeForCallOperatorInstantiationRAII (PR #100766)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 8 12:05:48 PDT 2024
================
@@ -712,22 +712,30 @@ bool Sema::addInstantiatedCapturesToScope(
auto AddSingleCapture = [&](const ValueDecl *CapturedPattern,
unsigned Index) {
ValueDecl *CapturedVar = LambdaClass->getCapture(Index)->getCapturedVar();
- if (CapturedVar->isInitCapture())
- Scope.InstantiatedLocal(CapturedPattern, CapturedVar);
+ assert(CapturedVar->isInitCapture());
+ Scope.InstantiatedLocal(CapturedPattern, CapturedVar);
};
for (const LambdaCapture &CapturePattern : LambdaPattern->captures()) {
if (!CapturePattern.capturesVariable()) {
Instantiated++;
continue;
}
- const ValueDecl *CapturedPattern = CapturePattern.getCapturedVar();
+ ValueDecl *CapturedPattern = CapturePattern.getCapturedVar();
+
+ if (!CapturedPattern->isInitCapture()) {
+ continue;
+ }
----------------
cor3ntin wrote:
When is `CapturedPattern` not an initCapture?
https://github.com/llvm/llvm-project/pull/100766
More information about the cfe-commits
mailing list