From a97a7ae98b47fb5a421427ab85eb06bcab48e71c Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 11 Sep 2008 14:36:05 +0200 Subject: 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 --- gcc/tree-ssa.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'gcc/tree-ssa.c') 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; } -- cgit v1.1