================
@@ -455,6 +455,12 @@ mlir::Value createParentSymAndGenIntermediateMaps(
         interimMapType &= ~mlir::omp::ClauseMapFlags::to;
         interimMapType &= ~mlir::omp::ClauseMapFlags::from;
         interimMapType &= ~mlir::omp::ClauseMapFlags::return_param;
+        // We do not want to carry over the separation of descriptor and 
pointer
+        // mapping of any intermediate components we emit maps for as this can
+        // result in very odd differing behaviour when either ref_ptr/ptee is
+        // specified.
+        interimMapType &= ~mlir::omp::ClauseMapFlags::ref_ptr;
----------------
bhandarkar-pranav wrote:

Is the following possible because here `ref_ptr_ptee` is not stripped.  If a 
user specifies `map(ref_ptr_ptee, tofrom: x%y)` where `x` is a derived type, 
the intermediate map for `x` will retain the `ref_ptr_ptee` flag. When 
`MapInfoFinalization` later processes `x`, it may attempt to generate a
base-addr and attach map for the intermediate structural map of `x`, which is 
incorrect.

https://github.com/llvm/llvm-project/pull/177715
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to