https://gcc.gnu.org/g:9b9a31dd0f863f2edb52801fe7955370adccce44
commit 9b9a31dd0f863f2edb52801fe7955370adccce44 Author: Mikael Morin <[email protected]> Date: Fri Oct 17 14:30:54 2025 +0200 Correction régression associate_47.f90 Diff: --- gcc/fortran/trans-array.cc | 11 ++++++++--- gcc/fortran/trans-types.cc | 3 --- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 974eba150f03..84020a4b802d 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -11117,14 +11117,19 @@ gfc_alloc_allocatable_for_assignment (gfc_loopinfo *loop, tmp = tmpse.expr; expr2->ts.u.cl->backend_decl = gfc_evaluate_now (tmp, &fblock); } - tmp = fold_convert (TREE_TYPE (expr1->ts.u.cl->backend_decl), tmp); } if (expr1->ts.u.cl->backend_decl && VAR_P (expr1->ts.u.cl->backend_decl)) - gfc_add_modify (&fblock, expr1->ts.u.cl->backend_decl, tmp); + { + tmp = fold_convert (TREE_TYPE (expr1->ts.u.cl->backend_decl), tmp); + gfc_add_modify (&fblock, expr1->ts.u.cl->backend_decl, tmp); + } else - gfc_add_modify (&fblock, lss->info->string_length, tmp); + { + tmp = fold_convert (TREE_TYPE (lss->info->string_length), tmp); + gfc_add_modify (&fblock, lss->info->string_length, tmp); + } if (expr1->ts.kind > 1) tmp = fold_build2_loc (input_location, MULT_EXPR, diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc index f9c85bc8ba0f..b69b302c0700 100644 --- a/gcc/fortran/trans-types.cc +++ b/gcc/fortran/trans-types.cc @@ -3055,9 +3055,6 @@ gfc_get_derived_type (gfc_symbol * derived, int codimen) gfc_conv_const_charlen (c->ts.u.cl); gcc_assert (c->ts.u.cl->backend_decl); } - else if (c->ts.type == BT_CHARACTER) - c->ts.u.cl->backend_decl - = build_int_cst (gfc_charlen_type_node, 0); field_type = gfc_typenode_for_spec (&c->ts, codimen); }
