https://gcc.gnu.org/g:393713f9c0d1e82e807c85505e7ea56bc66f4b93

commit 393713f9c0d1e82e807c85505e7ea56bc66f4b93
Author: Mikael Morin <[email protected]>
Date:   Fri Oct 17 15:00:55 2025 +0200

    Correction régression char_length_23.f90

Diff:
---
 gcc/fortran/trans-array.cc      | 1 +
 gcc/fortran/trans-descriptor.cc | 1 +
 2 files changed, 2 insertions(+)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index edef90c61d7f..1fa40eb56e8a 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -6262,6 +6262,7 @@ gfc_array_allocate (gfc_se * se, gfc_expr * expr, tree 
status, tree errmsg,
 
   if (expr->ts.type == BT_CHARACTER
       && TREE_CODE (se->string_length) == COMPONENT_REF
+      && expr->ts.u.cl->backend_decl
       && expr->ts.u.cl->backend_decl != se->string_length
       && VAR_P (expr->ts.u.cl->backend_decl))
     gfc_add_modify (&se->pre, expr->ts.u.cl->backend_decl,
diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 6ef9fa8145a2..654d72bc867d 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -3329,6 +3329,7 @@ gfc_descriptor_init_count (tree descriptor, int rank, int 
corank,
      it initialized.  */
   if (expr->ts.type == BT_CHARACTER
       && expr->ts.deferred
+      && expr->ts.u.cl->backend_decl
       && VAR_P (expr->ts.u.cl->backend_decl))
     {
       tree dtype;

Reply via email to