https://gcc.gnu.org/g:137fe54b5c5d42ef4ce1c5186755eb690105fa0a
commit 137fe54b5c5d42ef4ce1c5186755eb690105fa0a Author: Mikael Morin <mik...@gcc.gnu.org> Date: Thu Apr 3 20:59:45 2025 +0200 Correction actual_array_constructor_1.f90 Diff: --- gcc/fortran/trans-array.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index f09a1f6130dd..717176c01056 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -3509,6 +3509,7 @@ conv_array_index_offset (gfc_se * se, gfc_ss * ss, int dim, int i, { gfc_array_info *info; tree index; + tree descriptor; tree data; info = &ss->info->data.array; @@ -3544,14 +3545,15 @@ conv_array_index_offset (gfc_se * se, gfc_ss * ss, int dim, int i, gfc_array_index_type, se->loop->loopvar[i], se->loop->from[i]); - data = info->subscript[dim]->info->data.array.data; + descriptor = info->subscript[dim]->info->data.array.descriptor; index = fold_convert_loc (input_location, gfc_array_index_type, index); /* Read the vector to get an index into info->descriptor. */ - data = build_fold_indirect_ref_loc (input_location, data); + data = build_fold_indirect_ref_loc (input_location, + gfc_conv_array_data (descriptor)); index = gfc_build_array_ref (data, index, - info->subscript[dim]->info->data.array.spacing[0], - info->subscript[dim]->info->data.array.align); + gfc_conv_array_spacing (descriptor, 0), + gfc_conv_array_align (descriptor)); index = gfc_evaluate_now (index, &se->pre); index = fold_convert (gfc_array_index_type, index);