From: Mikael Morin Date: Fri, 24 Jul 2015 14:44:59 +0000 (+0000) Subject: Fix gfortran.dg/class_to_type_4.f90 deallocation code misordering failure X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=68180ebadd0ac19bbf2ce55bd0625d1d001f7d33;p=gcc.git Fix gfortran.dg/class_to_type_4.f90 deallocation code misordering failure PR fortran/64986 gcc/fortran/ * trans-expr.c (gfc_trans_assignment_1): Put component deallocation code at the beginning of the block. From-SVN: r226162 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 47cfa072aaa..0ed6b9bb901 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2015-07-24 Mikael Morin + + PR fortran/64986 + * trans-expr.c (gfc_trans_assignment_1): Put component deallocation + code at the beginning of the block. + 2015-07-22 Mikael Morin PR fortran/61831 diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 89b4dfd3443..be6bfe2006d 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -9241,7 +9241,7 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr * expr2, bool init_flag, 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,