From 7c185a3928ef9df1178e6dcf3a2a0e68403b146f Mon Sep 17 00:00:00 2001 From: Mikael Morin Date: Fri, 17 Oct 2025 14:30:54 +0200 Subject: [PATCH] =?UTF-8?q?Correction=20r=C3=A9gression=20associate=5F47.f?= =?UTF-8?q?90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 40ba659f9701..edef90c61d7f 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -11088,14 +11088,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 9e8f2701b24f..a5c2747e9254 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); }