================ @@ -218,17 +224,40 @@ bool ClauseProcessor::processMotionClauses( // Explicit map captures are captured ByRef by default, // optimisation passes may alter this to ByCopy or other capture // types to optimise - mlir::Value mapOp = createMapInfoOp( - firOpBuilder, clauseLocation, symAddr, mlir::Value{}, - asFortran.str(), bounds, {}, + mlir::omp::MapInfoOp mapOp = createMapInfoOp( + firOpBuilder, clauseLocation, symAddr, + /*varPtrPtr=*/mlir::Value{}, asFortran.str(), bounds, + /*members=*/{}, /*membersIndex=*/mlir::DenseIntElementsAttr{}, static_cast< std::underlying_type_t<llvm::omp::OpenMPOffloadMappingFlags>>( mapTypeBits), mlir::omp::VariableCaptureKind::ByRef, symAddr.getType()); - result.mapVars.push_back(mapOp); + if (object.id()->owner().IsDerivedType()) { + std::optional<Fortran::evaluate::DataRef> dataRef = ---------------- jsjodin wrote:
Would it be possible to create a function for the code inside the 'if'? It seems like the same code exists above. https://github.com/llvm/llvm-project/pull/82853 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits