diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-03-27 16:19:35 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-03-27 15:19:35 +0000 |
commit | 6e85fbaadd3fdbc8127ec13b64fa70e59aef7665 (patch) | |
tree | 2378590cd5080fd81b1cba8bdbf9cf0ee0aba333 /gcc/symtab.c | |
parent | 931c8e9a04bd7cb7c8f372a77e8061c46b19a742 (diff) | |
download | gcc-6e85fbaadd3fdbc8127ec13b64fa70e59aef7665.zip gcc-6e85fbaadd3fdbc8127ec13b64fa70e59aef7665.tar.gz gcc-6e85fbaadd3fdbc8127ec13b64fa70e59aef7665.tar.bz2 |
re PR target/65531 (ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx)
PR target/65531
* symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
comdat groups.
From-SVN: r221736
Diffstat (limited to 'gcc/symtab.c')
-rw-r--r-- | gcc/symtab.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/symtab.c b/gcc/symtab.c index 88e168b..84a0981 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1130,15 +1130,20 @@ symtab_node::verify_symtab_nodes (void) &existed); if (!existed) *entry = node; - else - for (s = (*entry)->same_comdat_group; s != NULL && s != node; s = s->same_comdat_group) + else if (!DECL_EXTERNAL (node->decl)) + { + for (s = (*entry)->same_comdat_group; s != NULL && s != node; + s = s->same_comdat_group) + ; if (!s || s == *entry) { - error ("Two symbols with same comdat_group are not linked by the same_comdat_group list."); + error ("Two symbols with same comdat_group are not linked by " + "the same_comdat_group list."); (*entry)->debug (); node->debug (); internal_error ("symtab_node::verify failed"); } + } } } } |