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;

Reply via email to