================
@@ -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

Reply via email to