[gcc(refs/users/marxin/heads/loop-unswitch-improvement-v7)] Fix memory leaks.

Martin Liska marxin@gcc.gnu.org
Wed Dec 8 18:37:12 GMT 2021


https://gcc.gnu.org/g:129bee1bdd8c50e6f5e122d6713494b3665b8dde

commit 129bee1bdd8c50e6f5e122d6713494b3665b8dde
Author: Martin Liska <mliska@suse.cz>
Date:   Wed Dec 8 19:37:02 2021 +0100

    Fix memory leaks.

Diff:
---
 gcc/tree-ssa-loop-unswitch.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gcc/tree-ssa-loop-unswitch.c b/gcc/tree-ssa-loop-unswitch.c
index 961c6f20478..dac859ad1e5 100644
--- a/gcc/tree-ssa-loop-unswitch.c
+++ b/gcc/tree-ssa-loop-unswitch.c
@@ -210,6 +210,7 @@ init_loop_unswitch_info (class loop *loop,
 	set_predicates_for_bb (bbs[i], candidates);
       else
 	{
+	  candidates.release ();
 	  gimple *last = last_stmt (bbs[i]);
 	  if (last != NULL)
 	    gimple_set_uid (last, 0);
@@ -248,7 +249,16 @@ tree_ssa_unswitch_loops (void)
 	  predicate_path.create (8);
 	  changed |= tree_unswitch_single_loop (loop, 0, predicate_path,
 						budget, ignored_edge_flag);
+	  predicate_path.release ();
 
+	  for (auto predlist: bb_predicates)
+	    {
+	      for (auto predicate: predlist)
+		delete predicate;
+	      predlist.release ();
+	    }
+
+	  bb_predicates->release ();
 	  delete bb_predicates;
 	  bb_predicates = NULL;
 	}


More information about the Gcc-cvs mailing list