diff options
author | Martin Liska <mliska@suse.cz> | 2015-11-09 16:45:59 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2015-11-09 15:45:59 +0000 |
commit | af121e828eb03233d731b25b590d1f7c5dd2693d (patch) | |
tree | a60b2807573bbeab492c0ef1ec1bb75bcd6b8efa /gcc/gcc.c | |
parent | fc402eec4b203f2fba90abd57805174d4101d618 (diff) | |
download | gcc-af121e828eb03233d731b25b590d1f7c5dd2693d.zip gcc-af121e828eb03233d731b25b590d1f7c5dd2693d.tar.gz gcc-af121e828eb03233d731b25b590d1f7c5dd2693d.tar.bz2 |
Fix memory leaks and use a pool_allocator
* gcc.c (record_temp_file): Release name string.
* ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead
of vec.
* lra-lives.c (free_live_range_list): Utilize
lra_live_range_pool for allocation and deallocation.
(create_live_range): Likewise.
(copy_live_range): Likewise.
(lra_merge_live_ranges): Likewise.
(remove_some_program_points_and_update_live_ranges): Likewise.
(lra_create_live_ranges_1): Release point_freq_vec that can
be not freed from previous iteration of the function.
* tree-eh.c (lower_try_finally_switch): Use auto_vec instead of
vec.
* tree-sra.c (sra_deinitialize): Release all vectors in
base_access_vec.
* tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
Release edge_info for a removed edge.
(thread_through_all_blocks): Free region vector.
* tree-ssa.h (free_dom_edge_info): Declare function extern.
From-SVN: r230027
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r-- | gcc/gcc.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -2345,7 +2345,10 @@ record_temp_file (const char *filename, int always_delete, int fail_delete) struct temp_file *temp; for (temp = always_delete_queue; temp; temp = temp->next) if (! filename_cmp (name, temp->name)) - goto already1; + { + free (name); + goto already1; + } temp = XNEW (struct temp_file); temp->next = always_delete_queue; |