https://gcc.gnu.org/g:99bb341c54c1348ba0690141019eb0ba0d1342c0
commit 99bb341c54c1348ba0690141019eb0ba0d1342c0 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Mon Jun 2 18:48:04 2025 +0200 Correction régression assumed_rank_25 Diff: --- gcc/fortran/trans-array.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 3035545f889d..3b511e96224d 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -7487,11 +7487,11 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr) substr = info->ref && info->ref->next && info->ref->next->type == REF_SUBSTRING; - subref_array_target = (is_subref_array (expr) - && (se->direct_byref - || expr->ts.type == BT_CHARACTER)); + subref_array_target = is_subref_array (expr); need_tmp = (gfc_ref_needs_temporary_p (expr->ref) - && !subref_array_target); + && !(subref_array_target + && (se->direct_byref + || expr->ts.type == BT_CHARACTER))); if (se->force_tmp) need_tmp = 1;