diff options
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 1446612..9eb1b21 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -853,6 +853,7 @@ delete_tree_ssa (void) block_stmt_iterator bsi; referenced_var_iterator rvi; tree var; + unsigned u; /* Release any ssa_names still in use. */ for (i = 0; i < num_ssa_names; i++) @@ -887,6 +888,16 @@ delete_tree_ssa (void) ggc_free (var->common.ann); var->common.ann = NULL; } + + /* Remove any referenced variables which had duplicate UID's. */ + for (u = 0; u < VEC_length (tree, referenced_vars_dup_list); u++) + { + var = VEC_index (tree, referenced_vars_dup_list, u); + ggc_free (var->common.ann); + var->common.ann = NULL; + } + VEC_free (tree, gc, referenced_vars_dup_list); + htab_delete (referenced_vars); referenced_vars = NULL; |