From 46b2c44027f8972329b6f602b57c9fdf1a8e4007 Mon Sep 17 00:00:00 2001 From: Mikael Morin Date: Wed, 23 Feb 2011 22:38:27 +0000 Subject: re PR fortran/40850 (double free in nested types with allocatable components) 2011-02-23 Mikael Morin PR fortran/40850 * trans.c (gfc_prepend_expr_to_block): New function. * trans.h (gfc_prepend_expr_to_block): Declare. * trans-array.c (gfc_conv_array_parameter): Replace gfc_add_expr_to_block with gfc_prepend_expr_to_block. 2011-02-23 Mikael Morin PR fortran/40850 * gfortran.dg/nested_allocatables_1.f90: New. From-SVN: r170445 --- gcc/fortran/trans.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gcc/fortran/trans.c') diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index 1fd0dc1..27a352a 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -1090,7 +1090,8 @@ add_expr_to_chain (tree* chain, tree expr, bool front) *chain = expr; } -/* Add a statement to a block. */ + +/* Add a statement at the end of a block. */ void gfc_add_expr_to_block (stmtblock_t * block, tree expr) @@ -1100,6 +1101,16 @@ gfc_add_expr_to_block (stmtblock_t * block, tree expr) } +/* Add a statement at the beginning of a block. */ + +void +gfc_prepend_expr_to_block (stmtblock_t * block, tree expr) +{ + gcc_assert (block); + add_expr_to_chain (&block->head, expr, true); +} + + /* Add a block the end of a block. */ void -- cgit v1.1