https://gcc.gnu.org/g:391a7e06973c22f02d62cd38f7b800bfbba67e1d
commit 391a7e06973c22f02d62cd38f7b800bfbba67e1d 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 536b46fcfef6..946f6bbce3ab 100644 --- a/gcc/fortran/trans-expr.cc +++ b/gcc/fortran/trans-expr.cc @@ -10427,9 +10427,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; }