aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-08-22 07:54:24 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2012-08-22 07:54:24 +0200
commitd8f8a0b41e8cb34f205b58bea6080da4e6cfb337 (patch)
tree2c9a5fca75ff9a0d341d093a678cc1ba2b7389db /gcc/fortran/trans-expr.c
parent03dd17b12e13b5c1cef36c4b52fa3acc7b7640f2 (diff)
downloadgcc-d8f8a0b41e8cb34f205b58bea6080da4e6cfb337.zip
gcc-d8f8a0b41e8cb34f205b58bea6080da4e6cfb337.tar.gz
gcc-d8f8a0b41e8cb34f205b58bea6080da4e6cfb337.tar.bz2
trans-expr.c (gfc_copy_class_to_class, [...]): Free loop and ss data.
2012-08-22 Tobias Burnus <burnus@net-b.de> * trans-expr.c (gfc_copy_class_to_class, gfc_trans_arrayfunc_assign): Free loop and ss data. * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data. From-SVN: r190586
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 4f7d0262..cfb0862 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -533,6 +533,7 @@ gfc_copy_class_to_class (tree from, tree to, tree nelems)
loop.to[0] = nelems;
gfc_trans_scalarizing_loops (&loop, &loopbody);
gfc_add_block_to_block (&body, &loop.pre);
+ gfc_cleanup_loop (&loop);
tmp = gfc_finish_block (&body);
}
else
@@ -6770,6 +6771,7 @@ gfc_trans_arrayfunc_assign (gfc_expr * expr1, gfc_expr * expr2)
if (!expr2->value.function.isym)
{
realloc_lhs_loop_for_fcn_call (&se, &expr1->where, &ss, &loop);
+ gfc_cleanup_loop (&loop);
ss->is_alloc_lhs = 1;
}
else
@@ -6778,6 +6780,7 @@ gfc_trans_arrayfunc_assign (gfc_expr * expr1, gfc_expr * expr2)
gfc_conv_function_expr (&se, expr2);
gfc_add_block_to_block (&se.pre, &se.post);
+ gfc_free_ss (se.ss);
return gfc_finish_block (&se.pre);
}