doru1004 added inline comments.
================ Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:243 if (!FD->getType()->isReferenceType()) { - assert(!VD->getType()->isVariablyModifiedType() && + bool isVMT = VD->getType()->isVariablyModifiedType(); + assert((!isVMT || (isVMT && !IsForCombinedParallelRegion)) && ---------------- ABataev wrote: > ABataev wrote: > > doru1004 wrote: > > > doru1004 wrote: > > > > ABataev wrote: > > > > > Is it for pointers only? Or for other types too? > > > > I am not sure about that distinction; it allows for the same types as > > > > before except that when the directive is not a combined parallel for > > > > directive it returns immediately because the variable will then have to > > > > be captured and shared. > > > Correction: it allows for VMTs to pass through in cases in which you > > > don't use a combined parallel for directive. > > `IsVMTTy`? > How can it be captured by value? Why does it happen? My first question > relates to the assertion you changed. I assume, it applies only to the > pointers. Otherwise, please add more context how we can capture mariably > modifiable type by value. Yes it should be called `IsVMTTy` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138614/new/ https://reviews.llvm.org/D138614 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits