https://gcc.gnu.org/g:a9618d860e2cff3ba00347c86c8617e0936f0e0b
commit a9618d860e2cff3ba00347c86c8617e0936f0e0b 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 4ab1dd3f897b..6fd1ff105b8c 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);
