https://gcc.gnu.org/g:238146e371b8a6c067d8f4edf1b106c8fa069219
commit 238146e371b8a6c067d8f4edf1b106c8fa069219
Author: Mikael Morin <mikael@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 2c513303af5c..7196fd59c40c 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -11067,7 +11067,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. */