]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
authorTobias Burnus <burnus@net-b.de>
Fri, 1 Mar 2013 10:24:11 +0000 (11:24 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 1 Mar 2013 10:24:11 +0000 (11:24 +0100)
2013-03-01  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
        * trans-io.c (build_dt): Ditto.

From-SVN: r196372

gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/fortran/trans-io.c

index 2bea99664f0424e77958559ddc1c84789ac7f4bf..cb6fd6122a03a0dec52887afd5befa670432582c 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-01  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
+       * trans-io.c (build_dt): Ditto.
+
 2013-02-24  Joseph Myers  <joseph@codesourcery.com>
 
        * resolve.c (generate_component_assignments): Don't use UTF-8
index 337d747520fa85bf77df5d24e997ae9fea60a48d..7806bbbd8789ed2ce1ebbab6f8b7e73916e5f865 100644 (file)
@@ -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)
                {
index bb5fa2423a69b6f6903d79be7177c474b658ad14..9394810f01fbcf907843d6baa81bc95ecdc43bbf 100644 (file)
@@ -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;