diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-02-27 15:01:08 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-02-27 15:01:08 +0100 |
commit | 6fa5e0ed90b7c720526aaf00987828b50165d19a (patch) | |
tree | f2b0dbceeb47d6576b17174120930c4e096ff48e /gcc/tree-flow.h | |
parent | d809887a669e7c2c709d1ca37d2f0e44ecfdb341 (diff) | |
download | gcc-6fa5e0ed90b7c720526aaf00987828b50165d19a.zip gcc-6fa5e0ed90b7c720526aaf00987828b50165d19a.tar.gz gcc-6fa5e0ed90b7c720526aaf00987828b50165d19a.tar.bz2 |
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
vector.
* tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
vec_safe_push, always update *slot.
(redirect_edge_var_map_clear): Use vec_free.
(redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
(free_var_map_entry): Use vec_free.
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
From-SVN: r196313
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r-- | gcc/tree-flow.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 80cb294..20584b8 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -481,7 +481,7 @@ typedef struct _edge_var_map edge_var_map; /* A vector of var maps. */ -typedef vec<edge_var_map> edge_var_map_vector; +typedef vec<edge_var_map, va_heap, vl_embed> edge_var_map_vector; extern void init_tree_ssa (struct function *); extern void redirect_edge_var_map_add (edge, tree, tree, source_location); |