https://gcc.gnu.org/g:529b9c7951ea667604975ca718be78c6657d6c78
commit 529b9c7951ea667604975ca718be78c6657d6c78 Author: Mikael Morin <[email protected]> Date: Wed Oct 1 16:02:00 2025 +0200 Correction régression alloc_comp_assign_12.f90 Diff: --- gcc/fortran/trans-array.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index b4ed4cf84899..cad5130f20cf 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -7855,9 +7855,14 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr) else full = gfc_full_array_ref_p (info->ref, NULL); - if (full && !transposed_dims (ss)) - { - if (se->direct_byref && !se->byref_noassign) + if (full && !transposed_dims (ss) + && !(se->bytes_strided + && !GFC_BYTES_STRIDES_ARRAY_TYPE_P (TREE_TYPE (desc)) + && !se->expr)) + { + if ((se->direct_byref && !se->byref_noassign) + || (se->bytes_strided + && !GFC_BYTES_STRIDES_ARRAY_TYPE_P (TREE_TYPE (desc)))) gfc_copy_descriptor (&se->pre, se->expr, desc, expr, subref_array_target); else if (se->want_pointer)
