summaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-12 13:49:34 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-12 13:49:34 +0000
commit6f932b06df8837c89ebb97e12c497f86d08b7f60 (patch)
tree8ecab4363a29f5b524dad95f3f7d8676be43b1c6 /gcc/varasm.c
parent3b3493548e265a528b82875f96a9782c5d11edcb (diff)
downloadgcc-6f932b06df8837c89ebb97e12c497f86d08b7f60.tar.gz
* cgraph.h (struct varpool_node): Add aux.
* varasm.c (find_decl_and_mark_needed): Force output of varpool nodes. * varpool.c (varpool_remove_node): Do not remove initializer. (varpool_reset_queue): Export. (varpool_finalize_decl): Volatile vars are forced to be output. * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of replaced decl. * ipa.c (enqueue_cgraph_node, enqueue_varpool_node, process_references, varpool_can_remove_if_no_refs): New functions. (cgraph_remove_unreachable_nodes): Handle variables too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159321 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9f2f0a6f957..15ff1b3c212 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5650,6 +5650,7 @@ find_decl_and_mark_needed (tree decl, tree target)
else if (vnode)
{
varpool_mark_needed_node (vnode);
+ vnode->force_output = 1;
return vnode->decl;
}
else