[PATCH] D127803: Generate the capture for field when the field is used in openmp region with implicit default in the member function.

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 1 09:23:51 PDT 2022

ABataev added inline comments.

Comment at: clang/lib/Sema/SemaOpenMP.cpp:2273-2274
+bool Sema::isOpenMPRebuildMemberExpr(ValueDecl *D) {
+  if (getCurCapturedRegion() &&
+      getCurCapturedRegion()->CapRegionKind == CR_OpenMP) {
+    DSAStackTy::DSAVarData DVarPrivate = DSAStack->hasDSA(
jyu2 wrote:
> ABataev wrote:
> > What if we have another outer OpenMP region, something like lambda inside OpenMP region?
> My understanding is that hasDSA will go up to find innermost openmp region which has default clause.  Am I right here?
Yes, if you're immediate captured region is OpenMP region. But what if you're inside lambda, which is inside OpenMP region? In this case getCurCapturedRegion()->CapRegionKind != CR_OpenMP. Will it still work, could add a test for this situation?

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list