https://gcc.gnu.org/g:a0951d4448036d35343b534b58c85f96f76ce7e6

commit a0951d4448036d35343b534b58c85f96f76ce7e6
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Mon Jul 7 19:00:09 2025 +0200

    Simplification mise à jour descripteur

Diff:
---
 gcc/fortran/trans-array.cc | 28 +++++++++-------------------
 1 file changed, 9 insertions(+), 19 deletions(-)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 832db1c3df4e..2d3ae44a8186 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -11375,36 +11375,26 @@ update_reallocated_descriptor (stmtblock_t *block, 
gfc_loopinfo *loop)
 
       gcc_assert (s->info->type == GFC_SS_SECTION);
       gfc_array_info *info = &s->info->data.array;
-      tree desc = info->descriptor;
 
-#define UPDATE_VALUE(field, value) \
+#define UPDATE_VALUE(value) \
              do \
                { \
-                 if (false && (field) && VAR_P ((field))) \
-                   { \
-                     tree val = (value); \
-                     gfc_add_modify (block, (field), val); \
-                   } \
-                 else \
-                   (field) = gfc_evaluate_now ((field), block); \
+                 value = gfc_evaluate_now (value, block); \
                } \
              while (0)
 
-      if (save_descriptor_data (desc, info->data))
-       UPDATE_VALUE (info->data, gfc_conv_descriptor_data_get (desc)); 
-      UPDATE_VALUE (info->offset, gfc_conv_descriptor_offset_get (desc));
+      if (save_descriptor_data (info->descriptor, info->data))
+       UPDATE_VALUE (info->data);
+      UPDATE_VALUE (info->offset);
       info->saved_offset = info->offset;
       for (int i = 0; i < s->dimen; i++)
        {
          int dim = s->dim[i];
          tree tree_dim = gfc_rank_cst[dim]; 
-         UPDATE_VALUE (info->start[dim],
-                       gfc_conv_descriptor_lbound_get (desc, tree_dim));
-         UPDATE_VALUE (info->end[dim],
-                       gfc_conv_descriptor_ubound_get (desc, tree_dim));
-         UPDATE_VALUE (info->stride[dim],
-                       gfc_conv_descriptor_stride_get (desc, tree_dim));
-         info->delta[dim] = gfc_evaluate_now (info->delta[dim], block);
+         UPDATE_VALUE (info->start[dim]);
+         UPDATE_VALUE (info->end[dim]);
+         UPDATE_VALUE (info->stride[dim]);
+         UPDATE_VALUE (info->delta[dim]);
        }
 
 #undef UPDATE_VALUE

Reply via email to