From: Tobias Burnus Date: Fri, 1 Mar 2013 10:24:11 +0000 (+0100) Subject: trans-decl.c (gfc_trans_deferred_vars): Free expr after use. X-Git-Tag: releases/gcc-4.8.0~249 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=76c1a7ec3da05e9a249c9ccdda28c44778cd1a3f;p=thirdparty%2Fgcc.git trans-decl.c (gfc_trans_deferred_vars): Free expr after use. 2013-03-01 Tobias Burnus * trans-decl.c (gfc_trans_deferred_vars): Free expr after use. * trans-io.c (build_dt): Ditto. From-SVN: r196372 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2bea99664f04..cb6fd6122a03 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 337d747520fa..7806bbbd8789 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 bb5fa2423a69..9394810f01fb 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;