https://gcc.gnu.org/g:7b18f5d581790bac863a8bfa51f6213576d7e8e3
commit 7b18f5d581790bac863a8bfa51f6213576d7e8e3 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 73813b719c61..c93f1e445398 100644 --- a/gcc/fortran/trans-expr.cc +++ b/gcc/fortran/trans-expr.cc @@ -10404,9 +10404,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; }