https://gcc.gnu.org/g:298afb1c536d95e3ecc15973b872af8ce6ce3836

commit 298afb1c536d95e3ecc15973b872af8ce6ce3836
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Wed Aug 13 21:57:46 2025 +0200

    Correction régression associate_33

Diff:
---
 gcc/fortran/trans-descriptor.cc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 8cc56c8a17f9..7e6b0f136104 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -1232,9 +1232,10 @@ shift_dimension_bounds (stmtblock_t * block, tree descr, 
tree dim,
   gfc_conv_descriptor_ubound_set (block, descr, dim, ubound);
   tree offs_diff = fold_build2_loc (input_location, MULT_EXPR,
                                    gfc_array_index_type, diff, orig_stride);
-  *offset_value = fold_build2_loc (input_location, MINUS_EXPR,
-                                  gfc_array_index_type, *offset_value,
-                                  offs_diff);
+  tree off = fold_build2_loc (input_location, MINUS_EXPR,
+                             gfc_array_index_type, *offset_value,
+                             offs_diff);
+  *offset_value = gfc_evaluate_now (off, block);
 
   /* Finally set lbound to value we want.  */
   gfc_conv_descriptor_lbound_set (block, descr, dim, new_lbound);

Reply via email to