diff options
Diffstat (limited to 'gcc/varpool.c')
-rw-r--r-- | gcc/varpool.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/varpool.c b/gcc/varpool.c index 76d8f72..a540d03 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -141,6 +141,7 @@ varpool_node (tree decl) node->decl = decl; node->order = cgraph_order++; node->next = varpool_nodes; + ipa_empty_ref_list (&node->ref_list); if (varpool_nodes) varpool_nodes->prev = node; varpool_nodes = node; @@ -193,6 +194,8 @@ varpool_remove_node (struct varpool_node *node) gcc_assert (varpool_nodes_queue == node); varpool_nodes_queue = node->next_needed; } + ipa_remove_all_references (&node->ref_list); + ipa_remove_all_refering (&node->ref_list); if (DECL_INITIAL (node->decl)) DECL_INITIAL (node->decl) = error_mark_node; ggc_free (node); @@ -228,6 +231,10 @@ dump_varpool_node (FILE *f, struct varpool_node *node) else if (node->used_from_other_partition) fprintf (f, " used_from_other_partition"); fprintf (f, "\n"); + fprintf (f, " References: "); + ipa_dump_references (f, &node->ref_list); + fprintf (f, " Refering this var: "); + ipa_dump_refering (f, &node->ref_list); } /* Dump the variable pool. */ @@ -633,6 +640,7 @@ varpool_extra_name_alias (tree alias, tree decl) alias_node->alias = 1; alias_node->extra_name = decl_node; alias_node->next = decl_node->extra_name; + ipa_empty_ref_list (&alias_node->ref_list); if (decl_node->extra_name) decl_node->extra_name->prev = alias_node; decl_node->extra_name = alias_node; |