https://gcc.gnu.org/g:4a2807de43c5cff26779362bd0f357b703dc2b38

commit 4a2807de43c5cff26779362bd0f357b703dc2b38
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;

Reply via email to