]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fortran: Remove overwrite of polymorphic associate variable offset
authorMikael Morin <morin-mikael@orange.fr>
Tue, 5 Aug 2025 12:58:03 +0000 (14:58 +0200)
committerMikael Morin <mikael@gcc.gnu.org>
Tue, 5 Aug 2025 20:35:07 +0000 (22:35 +0200)
The array descriptor returned by gfc_conv_expr_descriptor should be
usable as is.  No need to overwrite the offset.

gcc/fortran/ChangeLog:

* trans-stmt.cc (trans_associate_var): Remove overwrite of
the polymorphic associate variable's array descriptor offset.

gcc/fortran/trans-stmt.cc

index 5974e4011bdd4e9d685234179c33684bf7c17adc..f4e6c57114eee0135692fffeb2ce0b6835b9869b 100644 (file)
@@ -1876,9 +1876,6 @@ trans_associate_var (gfc_symbol *sym, gfc_wrapped_block *block)
   bool class_target;
   bool unlimited;
   tree desc;
-  tree offset;
-  tree dim;
-  int n;
   tree charlen;
   bool need_len_assign;
   bool whole_array = true;
@@ -2292,21 +2289,6 @@ trans_associate_var (gfc_symbol *sym, gfc_wrapped_block *block)
 
          desc = gfc_class_data_get (se.expr);
 
-         /* Set the offset.  */
-         offset = gfc_index_zero_node;
-         for (n = 0; n < e->rank; n++)
-           {
-             dim = gfc_rank_cst[n];
-             tmp = fold_build2_loc (input_location, MULT_EXPR,
-                                    gfc_array_index_type,
-                                    gfc_conv_descriptor_stride_get (desc, dim),
-                                    gfc_conv_descriptor_lbound_get (desc, dim));
-             offset = fold_build2_loc (input_location, MINUS_EXPR,
-                                       gfc_array_index_type,
-                                       offset, tmp);
-           }
-         gfc_conv_descriptor_offset_set (&se.pre, desc, offset);
-
          if (need_len_assign)
            {
              if (e->symtree