https://gcc.gnu.org/g:2d0d961c8735d13911cf8c659043283248e7ccb6
commit 2d0d961c8735d13911cf8c659043283248e7ccb6 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 3ea3e0b7f2ec..9ed9f4792cbb 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -7606,11 +7606,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;