diff options
author | Jan Hubicka <jh@suse.cz> | 2011-10-19 12:27:50 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-10-19 10:27:50 +0000 |
commit | c9552bff091dae74d992b04fde8050e892761dae (patch) | |
tree | 4656b89b69afb0c42224eaeeaa3e0c4e8a753185 /gcc/varpool.c | |
parent | 091751993553dae197bfda9230f15d9cb9dd86df (diff) | |
download | gcc-c9552bff091dae74d992b04fde8050e892761dae.zip gcc-c9552bff091dae74d992b04fde8050e892761dae.tar.gz gcc-c9552bff091dae74d992b04fde8050e892761dae.tar.bz2 |
cgraphunit.c (handle_alias_pairs): Also handle wekref with destination declared.
* cgraphunit.c (handle_alias_pairs): Also handle wekref with destination
declared.
(output_weakrefs): New function.
* varpool.c (varpool_create_variable_alias): Handle external aliases.
From-SVN: r180181
Diffstat (limited to 'gcc/varpool.c')
-rw-r--r-- | gcc/varpool.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/varpool.c b/gcc/varpool.c index d223779..e342a91 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -703,9 +703,11 @@ varpool_create_variable_alias (tree alias, tree decl) gcc_assert (TREE_CODE (alias) == VAR_DECL); alias_node = varpool_node (alias); alias_node->alias = 1; - alias_node->finalized = 1; + if (!DECL_EXTERNAL (alias)) + alias_node->finalized = 1; alias_node->alias_of = decl; - if (decide_is_variable_needed (alias_node, alias) + if ((!DECL_EXTERNAL (alias) + && decide_is_variable_needed (alias_node, alias)) || alias_node->needed) varpool_mark_needed_node (alias_node); return alias_node; |