aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-02-27 15:01:08 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2013-02-27 15:01:08 +0100
commit6fa5e0ed90b7c720526aaf00987828b50165d19a (patch)
treef2b0dbceeb47d6576b17174120930c4e096ff48e /gcc/tree-flow.h
parentd809887a669e7c2c709d1ca37d2f0e44ecfdb341 (diff)
downloadgcc-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.h2
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);