https://gcc.gnu.org/g:b960951e7b5acef5dfc8cdc948809ee1ca9492e8
commit b960951e7b5acef5dfc8cdc948809ee1ca9492e8 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Thu Jan 16 20:04:43 2025 +0100 Correction régression gfc_conv_expr_descriptor Diff: --- gcc/fortran/trans-array.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index b7d2b3280e78..bf11689cf3dd 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -9230,7 +9230,6 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr) bool subref_array_target = false; bool deferred_array_component = false; bool substr = false; - bool unlimited_polymorphic = false; gfc_expr *arg, *ss_expr; if (se->want_coarray || expr->rank == 0) @@ -9256,7 +9255,7 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr) } if (!se->direct_byref) - unlimited_polymorphic = UNLIMITED_POLY (expr); + se->unlimited_polymorphic = UNLIMITED_POLY (expr); /* Special case things we know we can pass easily. */ switch (expr->expr_type) @@ -9660,9 +9659,8 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr) gfc_get_array_span (desc, expr))); } - set_descriptor (&loop.pre, parm, desc, expr, loop.dimen, codim, - ss, info, loop.from, loop.to, unlimited_polymorphic, + ss, info, loop.from, loop.to, se->unlimited_polymorphic, !se->data_not_needed, subref_array_target); desc = parm;