https://gcc.gnu.org/g:d902aa1cfb4945bd1a03fdd2fc585d2d85900470

commit d902aa1cfb4945bd1a03fdd2fc585d2d85900470
Author: Mikael Morin <[email protected]>
Date:   Sun Sep 20 15:04:02 2026 +0200

    Essai correction ICE class_allocate_22

Diff:
---
 gcc/fortran/trans-expr.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index c07108cbaab1..ca384888bee3 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -1297,7 +1297,8 @@ gfc_conv_class_to_class (gfc_se *parmse, gfc_expr *e, 
gfc_typespec class_ts,
   if ((ref == NULL || class_ref == ref)
       && !(gfc_is_class_array_function (e) && parmse->class_vptr != NULL_TREE)
       && (!class_ts.u.derived->components->as
-         || class_ts.u.derived->components->as->rank != -1))
+         || class_ts.u.derived->components->as->rank != -1)
+      && !(e->expr_type == EXPR_FUNCTION && e->value.function.isym))
     return;
 
   /* Test for FULL_ARRAY.  */

Reply via email to