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,

Reply via email to