From c23adf93a11fd170b41f1bb681954fe361a18680 Mon Sep 17 00:00:00 2001 From: burnus Date: Fri, 1 Mar 2013 10:24:11 +0000 Subject: [PATCH] 2013-03-01 Tobias Burnus * trans-decl.c (gfc_trans_deferred_vars): Free expr after use. * trans-io.c (build_dt): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196372 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/trans-decl.c | 10 ++++++---- gcc/fortran/trans-io.c | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2bea996..cb6fd61 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-03-01 Tobias Burnus + + * trans-decl.c (gfc_trans_deferred_vars): Free expr after use. + * trans-io.c (build_dt): Ditto. + 2013-02-24 Joseph Myers * resolve.c (generate_component_assignments): Don't use UTF-8 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 337d747..7806bbb 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -3818,10 +3818,12 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) NULL_TREE, true, NULL, true); else - tmp = gfc_deallocate_scalar_with_status (se.expr, NULL_TREE, - true, - gfc_lval_expr_from_sym (sym), - sym->ts); + { + gfc_expr *expr = gfc_lval_expr_from_sym (sym); + tmp = gfc_deallocate_scalar_with_status (se.expr, NULL_TREE, + true, expr, sym->ts); + gfc_free_expr (expr); + } } if (sym->ts.type == BT_CLASS) { diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index bb5fa24..9394810 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -1782,6 +1782,8 @@ build_dt (tree function, gfc_code * code) mask |= set_string (&block, &post_block, var, IOPARM_dt_namelist_name, nmlname); + gfc_free_expr (nmlname); + if (last_dt == READ) mask |= IOPARM_dt_namelist_read_mode; -- 2.7.4