https://gcc.gnu.org/g:41fcfb250ec49eede085d2d72c4bfe91f34fb6dd

commit 41fcfb250ec49eede085d2d72c4bfe91f34fb6dd
Author: Mikael Morin <[email protected]>
Date:   Fri Oct 3 21:48:32 2025 +0200

    Correction régression pointer_remapping_10.f90

Diff:
---
 gcc/fortran/trans-expr.cc | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index b85cdd279a39..59008ae3f2b8 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -10846,9 +10846,21 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, 
gfc_expr * expr2)
              for (i = 0; i < expr2->rank; i++)
                bound[i] = NULL_TREE;
              tmp = gfc_typenode_for_spec (&expr2->ts);
+             enum gfc_array_kind akind;
+             bool packed;
+             if (gfc_expr_attr (expr2).contiguous)
+               {
+                 akind = GFC_ARRAY_POINTER_CONT;
+                 packed = true;
+               }
+             else
+               {
+                 akind = GFC_ARRAY_POINTER;
+                 packed = false;
+               }
              tmp = gfc_get_array_type_bounds (tmp, expr2->rank, 0,
-                                              bound, bound, 0,
-                                              GFC_ARRAY_POINTER, false);
+                                              bound, bound, packed, akind,
+                                              false);
              tmp = gfc_create_var (tmp, "ptrtemp");
              rse.descriptor_only = 0;
              rse.expr = tmp;

Reply via email to