https://gcc.gnu.org/g:dfbece07a4b1d24d15f36e2da7c3535ab0d29840
commit dfbece07a4b1d24d15f36e2da7c3535ab0d29840 Author: Mikael Morin <[email protected]> Date: Fri Oct 9 12:19:44 2026 +0200 Correction mineure conditions Diff: --- gcc/fortran/trans-expr.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc index 7c11c26dbbae..d0a323836352 100644 --- a/gcc/fortran/trans-expr.cc +++ b/gcc/fortran/trans-expr.cc @@ -11954,10 +11954,10 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2) gfc_conv_descriptor_data_set (&block, desc, data); /* Copy the span. */ - if (expr2->ts.type != BT_CLASS - && expr2->ts.type != BT_CHARACTER - && (expr2->ts.type != BT_DERIVED - || !expr2->ts.u.derived->attr.pdt_type)) + if (!(expr2->ts.type == BT_CLASS + || expr2->ts.type == BT_CHARACTER + || (expr2->ts.type == BT_DERIVED + && expr2->ts.u.derived->attr.pdt_type))) { tmp = TREE_TYPE (rse.expr); tmp = TYPE_SIZE_UNIT (gfc_get_element_type (tmp)); @@ -11978,7 +11978,7 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2) span = gfc_vptr_size_get (vptr); } else - span = gfc_conv_array_span (rse.expr); + span = gfc_get_array_span (rse.expr, expr2); gfc_conv_descriptor_span_set (&block, desc, span); /* Copy offset but adjust it such that it would correspond
