https://gcc.gnu.org/g:590a31d37e8f3187a198b5e91e46986fba196c24
commit 590a31d37e8f3187a198b5e91e46986fba196c24 Author: Mikael Morin <[email protected]> Date: Wed Oct 1 17:57:39 2025 +0200 Correction régression char_spread_1.f90 Diff: --- gcc/fortran/trans-array.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 635806a56277..579591c218e3 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -8015,6 +8015,20 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr) gcc_assert (loop.temp_ss->dimen == loop.dimen); gfc_add_ss_to_loop (&loop, loop.temp_ss); } + else if (ss + && ss != gfc_ss_terminator + && ss->next == gfc_ss_terminator + && ss->info + && ss->info->type == GFC_SS_FUNCTION + && expr->expr_type == EXPR_FUNCTION + && expr->value.function.isym != nullptr) + { + gfc_ss_type ss_type = ss->info->type; + gcc_assert (ss_type != GFC_SS_SCALAR + && ss_type != GFC_SS_REFERENCE + && ss_type != GFC_SS_TEMP); + info->bytes_strided = se->bytes_strided; + } gfc_conv_loop_setup (&loop, & expr->where);
