diff options
author | Jan Hubicka <jh@suse.cz> | 2013-06-13 12:00:04 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-06-13 10:00:04 +0000 |
commit | e5b962d0ccb213b6ad1f2ba4d6a0b84c9e94b046 (patch) | |
tree | 56d91bbff9c3f0ae370755a4ad8ff8b876842047 /gcc/symtab.c | |
parent | a8355e51785ca09eadc0e56afd0778c4ce076e2f (diff) | |
download | gcc-e5b962d0ccb213b6ad1f2ba4d6a0b84c9e94b046.zip gcc-e5b962d0ccb213b6ad1f2ba4d6a0b84c9e94b046.tar.gz gcc-e5b962d0ccb213b6ad1f2ba4d6a0b84c9e94b046.tar.bz2 |
ipa.c (cgraph_externally_visible_p, [...]): Local comdats are not externally visible.
* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
Local comdats are not externally visible.
* symtab.c (dump_symtab_base): Dump externally visible.
(verify_symtab_base): Verify back links in the symtab hash.
From-SVN: r200064
Diffstat (limited to 'gcc/symtab.c')
-rw-r--r-- | gcc/symtab.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/symtab.c b/gcc/symtab.c index c9f32d5..85d47a8 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -508,6 +508,8 @@ dump_symtab_base (FILE *f, symtab_node node) fprintf (f, " force_output"); if (node->symbol.forced_by_abi) fprintf (f, " forced_by_abi"); + if (node->symbol.externally_visible) + fprintf (f, " externally_visible"); if (node->symbol.resolution != LDPR_UNKNOWN) fprintf (f, " %s", ld_plugin_symbol_resolution_names[(int)node->symbol.resolution]); @@ -655,6 +657,15 @@ verify_symtab_base (symtab_node node) error ("node not found in symtab decl hashtable"); error_found = true; } + if (hashed_node != node + && (!is_a <cgraph_node> (node) + || !dyn_cast <cgraph_node> (node)->clone_of + || dyn_cast <cgraph_node> (node)->clone_of->symbol.decl + != node->symbol.decl)) + { + error ("node differs from symtab decl hashtable"); + error_found = true; + } } if (assembler_name_hash) { |