[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