diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-22 05:54:24 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-22 05:54:24 +0000 |
commit | ff211802773a766b277be5abfd7746c29f2cf6e5 (patch) | |
tree | 2c9a5fca75ff9a0d341d093a678cc1ba2b7389db /gcc/fortran/trans-expr.c | |
parent | 4ead5e300035ea4e0e4856c5eaa60e685b129339 (diff) | |
download | gcc-ff211802773a766b277be5abfd7746c29f2cf6e5.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190586 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 4f7d02620ad..cfb08621219 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); } |