https://gcc.gnu.org/g:2808e7c7c67e9a768a20213f482af7c60d678de9

commit 2808e7c7c67e9a768a20213f482af7c60d678de9
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Sat Aug 16 15:13:04 2025 +0200

    Simplification initialisation offset remap descriptor
    
    Modif initialisation stride
    
    Revert partiel initialisation stride
    
    Suppression warning argument inutilisé
    
    Suppression argument inutilisé

Diff:
---
 gcc/fortran/trans-descriptor.cc | 20 ++------------------
 gcc/fortran/trans-descriptor.h  |  2 +-
 gcc/fortran/trans-expr.cc       |  2 +-
 3 files changed, 4 insertions(+), 20 deletions(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 3df958c4ec86..641874104fab 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -1400,7 +1400,7 @@ gfc_copy_descriptor (stmtblock_t *block, tree dest, tree 
src, tree ptr,
 
 void
 gfc_conv_remap_descriptor (stmtblock_t *block, tree dest, int dest_rank,
-                          tree src, int src_rank, gfc_array_ref *ar)
+                          tree src, gfc_array_ref *ar)
 {
   /* Set dtype.  */
   gfc_conv_descriptor_dtype_set (block, dest,
@@ -1425,23 +1425,7 @@ gfc_conv_remap_descriptor (stmtblock_t *block, tree 
dest, int dest_rank,
 
   /* Copy offset but adjust it such that it would correspond
      to a lbound of zero.  */
-  if (src_rank == -1)
-    gfc_conv_descriptor_offset_set (block, dest,
-                                   gfc_index_zero_node);
-  else
-    {
-      tree offs = gfc_conv_descriptor_offset_get (src);
-      for (int dim = 0; dim < src_rank; ++dim)
-       {
-         tree stride = gfc_conv_descriptor_stride_get (src, gfc_rank_cst[dim]);
-         tree lbound = gfc_conv_descriptor_lbound_get (src, gfc_rank_cst[dim]);
-         tree tmp = fold_build2_loc (input_location, MULT_EXPR,
-                                     gfc_array_index_type, stride, lbound);
-         offs = fold_build2_loc (input_location, PLUS_EXPR,
-                                 gfc_array_index_type, offs, tmp);
-       }
-      gfc_conv_descriptor_offset_set (block, dest, offs);
-    }
+  gfc_conv_descriptor_offset_set (block, dest, gfc_index_zero_node);
 
   /* Set the bounds as declared for the LHS and calculate strides as
      well as another offset update accordingly.  */
diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h
index 35f50c144304..c6a079036902 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -113,7 +113,7 @@ void gfc_copy_descriptor (stmtblock_t *, tree, tree, tree, 
int, gfc_ss *);
 void gfc_copy_descriptor (stmtblock_t *, tree, tree, bool);
 void gfc_copy_descriptor (stmtblock_t *, tree, tree, int);
 
-void gfc_conv_remap_descriptor (stmtblock_t *, tree, int, tree, int,
+void gfc_conv_remap_descriptor (stmtblock_t *, tree, int, tree,
                                gfc_array_ref *);
 
 void gfc_set_descriptor_from_scalar_class (stmtblock_t *, tree, tree, gfc_expr 
*);
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 91e80044c36d..f9080421b01c 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -11019,7 +11019,7 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, 
gfc_expr * expr2)
                 converted in rse and now have to build the correct LHS
                 descriptor for it.  */
              gfc_conv_remap_descriptor (&block, desc, expr1->rank,
-                                        rse.expr, expr2->rank, &remap->u.ar);
+                                        rse.expr, &remap->u.ar);
            }
          else
            /* Bounds remapping.  Just shift the lower bounds.  */

Reply via email to