================
@@ -19789,27 +19793,31 @@ OMPClause
*SemaOpenMP::ActOnOpenMPFirstprivateClause(ArrayRef<Expr *> VarList,
SemaRef, VDPrivate, RefExpr->getType().getUnqualifiedType(),
RefExpr->getExprLoc());
DeclRefExpr *Ref = nullptr;
+ bool IsBindingDecl = isa<BindingDecl>(D);
if (!VD && !SemaRef.CurContext->isDependentContext()) {
if (TopDVar.CKind == OMPC_lastprivate) {
Ref = TopDVar.PrivateCopy;
} else {
- auto *FD = dyn_cast<FieldDecl>(D);
- VarDecl *VD = FD ? DSAStack->getImplicitFDCapExprDecl(FD) : nullptr;
- if (VD)
- Ref =
- buildDeclRefExpr(SemaRef, VD,
VD->getType().getNonReferenceType(),
- RefExpr->getExprLoc());
- else
- Ref = buildCapture(SemaRef, D, SimpleRefExpr, /*WithInit=*/true);
- if (VD || !isOpenMPCapturedDecl(D))
- ExprCaptures.push_back(Ref->getDecl());
+ if (!IsBindingDecl) {
+ auto *FD = dyn_cast<FieldDecl>(D);
+ VarDecl *VD = FD ? DSAStack->getImplicitFDCapExprDecl(FD) : nullptr;
+ if (VD)
+ Ref = buildDeclRefExpr(SemaRef, VD,
+ VD->getType().getNonReferenceType(),
+ RefExpr->getExprLoc());
+ else
+ Ref = buildCapture(SemaRef, D, SimpleRefExpr, /*WithInit=*/true);
+ if (VD || !isOpenMPCapturedDecl(D))
+ ExprCaptures.push_back(Ref->getDecl());
+ }
}
----------------
zahiraam wrote:
Done.
https://github.com/llvm/llvm-project/pull/190832
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits