aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-02-17 09:58:37 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-02-17 08:58:37 +0000
commit87be7f0cbbd5927135c54e2ca9c56b522851a2d6 (patch)
tree9264313f245864186f9fda4ff8b7a195578c0634 /gcc/varasm.c
parent4414e22eeeaaf9dbd41f182173aa0a23ee792d1a (diff)
downloadgcc-87be7f0cbbd5927135c54e2ca9c56b522851a2d6.zip
gcc-87be7f0cbbd5927135c54e2ca9c56b522851a2d6.tar.gz
gcc-87be7f0cbbd5927135c54e2ca9c56b522851a2d6.tar.bz2
symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
* symtab.c (symtab_node::verify_base): Verify body_removed->!definiton * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of variables in boundary that have no inlitalizer encoded and are not aliases. * varasm.c (default_binds_local_p_2): External definitions do not count as definitions here. From-SVN: r220749
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 7485499..dc7cfd7 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -6831,7 +6831,8 @@ default_binds_local_p_2 (const_tree exp, bool shlib, bool weak_dominate)
bool defined_locally = false;
if (symtab_node *node = symtab_node::get (exp))
{
- if (node->definition || node->in_other_partition)
+ if ((node->definition && !DECL_EXTERNAL (node->decl))
+ || node->in_other_partition)
{
defined_locally = true;
resolved_locally = (weak_dominate && !shlib);