[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?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D127803/new/

https://reviews.llvm.org/D127803



More information about the cfe-commits mailing list