https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64986
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikael at gcc dot gnu.org --- Comment #9 from Mikael Morin <mikael at gcc dot gnu.org> --- The components are deallocated after the containing object. Draft patch: Index: trans-expr.c =================================================================== --- trans-expr.c (révision 225979) +++ trans-expr.c (copie de travail) @@ -9241,7 +9241,7 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr if (scalar_to_array && dealloc) { tmp = gfc_deallocate_alloc_comp_no_caf (expr2->ts.u.derived, rse.expr, 0); - gfc_add_expr_to_block (&loop.post, tmp); + gfc_prepend_expr_to_block (&loop.post, tmp); } /* When assigning a character function result to a deferred-length variable,