https://gcc.gnu.org/g:69f8efdeee6a374d727a0e357e32d0e25b2b1bf2
commit 69f8efdeee6a374d727a0e357e32d0e25b2b1bf2 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Fri Jul 18 15:26:55 2025 +0200 Revert "Factorisation gfc_conv_shift_descriptor" This reverts commit d9cb2c7f244ea41b83d3781b860eb8d4b418ffb7. Diff: --- gcc/fortran/trans-stmt.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/trans-stmt.cc b/gcc/fortran/trans-stmt.cc index 8fedda1159d6..c359637355f7 100644 --- a/gcc/fortran/trans-stmt.cc +++ b/gcc/fortran/trans-stmt.cc @@ -2172,12 +2172,16 @@ trans_associate_var (gfc_symbol *sym, gfc_wrapped_block *block) if ((!sym->assoc->variable && !cst_array_ctor) || !whole_array) { + int dim; + if (whole_array) gfc_add_modify (&se.pre, desc, se.expr); /* The generated descriptor has lower bound zero (as array temporary), shift bounds so we get lower bounds of 1. */ - gfc_conv_shift_descriptor (&se.pre, desc, e->rank); + for (dim = 0; dim < e->rank; ++dim) + gfc_conv_shift_descriptor_lbound (&se.pre, desc, + dim, gfc_index_one_node); } /* If this is a subreference array pointer associate name use the