https://gcc.gnu.org/g:7d44e95279363837d56d315395902fc939aec1b2

commit 7d44e95279363837d56d315395902fc939aec1b2
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Tue Apr 22 21:24:40 2025 +0200

    Correction régression dependency_56

Diff:
---
 gcc/fortran/trans-expr.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 873d26ac35e9..709a5420aae6 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -10390,9 +10390,13 @@ trans_class_vptr_len_assignment (stmtblock_t *block, 
gfc_expr * le,
            pre = &rse->pre;
 
          if (class_expr != NULL_TREE && UNLIMITED_POLY (re))
-             tmp = gfc_evaluate_now (TREE_OPERAND (rse->expr, 0), &rse->pre);
+           {
+             tmp = gfc_build_addr_expr (NULL_TREE, rse->expr);
+             tmp = gfc_evaluate_now (tmp, &rse->pre);
+             tmp = build_fold_indirect_ref_loc (input_location, tmp);
+           }
          else
-             tmp = gfc_evaluate_now (rse->expr, &rse->pre);
+           tmp = gfc_evaluate_now (rse->expr, &rse->pre);
 
          rse->expr = tmp;
        }

Reply via email to