diff options
author | Jan Hubicka <jh@suse.cz> | 2008-09-11 14:36:05 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2008-09-11 12:36:05 +0000 |
commit | a97a7ae98b47fb5a421427ab85eb06bcab48e71c (patch) | |
tree | 4ff1db5b36161204cc69caf080c539c64482451b | |
parent | 4a283090455f0d8c9271d18d2e02e1c1c6717809 (diff) | |
download | gcc-a97a7ae98b47fb5a421427ab85eb06bcab48e71c.zip gcc-a97a7ae98b47fb5a421427ab85eb06bcab48e71c.tar.gz gcc-a97a7ae98b47fb5a421427ab85eb06bcab48e71c.tar.bz2 |
tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
* tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
(free_var_map_entry): New function.
(redirect_edge_var_map_destroy): Use it.
From-SVN: r140282
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa.c | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5777b0c..53fc1a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2008-09-11 Jan Hubicka <jh@suse.cz> + * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting. + (free_var_map_entry): New function. + (redirect_edge_var_map_destroy): Use it. + +2008-09-11 Jan Hubicka <jh@suse.cz> + PR middle-end/37448 * tree-inline.c (add_lexical_block): Replace with ... (prepend_lexical_block): ... prepend at begginig. diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index eed15c6..6a1f6f3 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -112,7 +112,8 @@ redirect_edge_var_map_clear (edge e) void redirect_edge_var_map_dup (edge newe, edge olde) { - void **new_slot, **old_slot; edge_var_map_vector head; + void **new_slot, **old_slot; + edge_var_map_vector head; if (!edge_var_maps) return; @@ -149,6 +150,17 @@ redirect_edge_var_map_vector (edge e) return (edge_var_map_vector) *slot; } +/* Used by redirect_edge_var_map_destroy to free all memory. */ + +static bool +free_var_map_entry (const void *key ATTRIBUTE_UNUSED, + void **value, + void *data ATTRIBUTE_UNUSED) +{ + edge_var_map_vector head = (edge_var_map_vector) *value; + VEC_free (edge_var_map, heap, head); + return true; +} /* Clear the edge variable mappings. */ @@ -157,6 +169,7 @@ redirect_edge_var_map_destroy (void) { if (edge_var_maps) { + pointer_map_traverse (edge_var_maps, free_var_map_entry, NULL); pointer_map_destroy (edge_var_maps); edge_var_maps = NULL; } |