aboutsummaryrefslogtreecommitdiff
path: root/gcc/vr-values.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-03-24 09:00:29 +0100
committerRichard Biener <rguenther@suse.de>2022-03-24 11:16:10 +0100
commit85b4d881327e31ae7d2bd4072dcbe425db30f8fe (patch)
treedf70be8f91e2fc038a6e20350082a73a4212792c /gcc/vr-values.cc
parentc1d233e3334df07cfb4f732ace4d93d3cbc28bca (diff)
downloadgcc-85b4d881327e31ae7d2bd4072dcbe425db30f8fe.zip
gcc-85b4d881327e31ae7d2bd4072dcbe425db30f8fe.tar.gz
gcc-85b4d881327e31ae7d2bd4072dcbe425db30f8fe.tar.bz2
Fix memory leaks
When changing the predcom pass to use auto_vec leaks were introduced by failing to replace deallocation with C++ delete. The following does this. It also fixes leaks in vectorization and range folding. 2022-03-24 Richard Biener <rguenther@suse.de> * tree-predcom.cc (chain::chain): Add CTOR. (component::component): Likewise. (pcom_worker::release_chain): Use delete. (release_components): Likewise. (pcom_worker::filter_suitable_components): Likewise. (pcom_worker::split_data_refs_to_components): Use new. (make_invariant_chain): Likewise. (make_rooted_chain): Likewise. (pcom_worker::combine_chains): Likewise. * tree-vect-loop.cc (vect_create_epilog_for_reduction): Make sure to release previously constructed scalar_results. * tree-vect-stmts.cc (vectorizable_load): Use auto_vec for vec_offsets. * vr-values.cc (simplify_using_ranges::~simplify_using_ranges): Release m_flag_set_edges.
Diffstat (limited to 'gcc/vr-values.cc')
-rw-r--r--gcc/vr-values.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/vr-values.cc b/gcc/vr-values.cc
index 0414020..f94da313 100644
--- a/gcc/vr-values.cc
+++ b/gcc/vr-values.cc
@@ -4221,6 +4221,7 @@ simplify_using_ranges::simplify_using_ranges (range_query *query,
simplify_using_ranges::~simplify_using_ranges ()
{
cleanup_edges_and_switches ();
+ m_flag_set_edges.release ();
}
/* Simplify STMT using ranges if possible. */