diff options
author | Jan Hubicka <jh@suse.cz> | 2011-10-19 10:27:50 +0000 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2011-10-19 10:27:50 +0000 |
commit | 605950e666d0ff5815b527ad1122618a37929a54 (patch) | |
tree | 4656b89b69afb0c42224eaeeaa3e0c4e8a753185 /gcc/varpool.c | |
parent | 2da9be2c654bf197c3c06c78bd083cc449811cd7 (diff) |
* cgraphunit.c (handle_alias_pairs): Also handle wekref with destination
declared.
(output_weakrefs): New function.
* varpool.c (varpool_create_variable_alias): Handle external aliases.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@180181 138bc75d-0d04-0410-961f-82ee72b054a4
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 d223779a5c1..e342a9109d9 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; |