https://gcc.gnu.org/g:7d64bde64d323824f8e82bf5510e2207be0886ac
commit 7d64bde64d323824f8e82bf5510e2207be0886ac 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 5e3343d7cfa2..ad82a2e3b72f 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)
