================
@@ -919,8 +924,27 @@ bool ClauseProcessor::processMap(
 
         for (const Fortran::parser::OmpObject &ompObject :
              std::get<Fortran::parser::OmpObjectList>(mapClause->v.t).v) {
+          llvm::omp::OpenMPOffloadMappingFlags objectsMapTypeBits = 
mapTypeBits;
+          checkAndApplyDeclTargetMapFlags(converter, objectsMapTypeBits,
+                                          *getOmpObjectSymbol(ompObject));
+
           llvm::SmallVector<mlir::Value> bounds;
           std::stringstream asFortran;
+          const Fortran::semantics::Symbol *parentSym = nullptr;
+
+          if (getOmpObjectSymbol(ompObject)->owner().IsDerivedType()) {
+            const auto *designator =
+                Fortran::parser::Unwrap<Fortran::parser::Designator>(
+                    ompObject.u);
+            assert(designator && "Expected a designator from derived type "
+                                 "component during map clause processing");
+            parentSym = GetFirstName(*designator).symbol;
----------------
kparzysz wrote:

We will need to traverse all parents.  For example given `x%y%z`, 
`GetFirstName` will return `x`.  The type of `x` does not have a member `z`, so 
findComponentMemberPlacement will fail.

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
  • [... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... Valentin Clement バレンタイン クレメン via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... Valentin Clement バレンタイン クレメン via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... Valentin Clement バレンタイン クレメン via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... Krzysztof Parzyszek via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits
    • ... via llvm-branch-commits

Reply via email to