aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/symtab.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0f0a6f5..e846805 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2015-03-27 Jan Hubicka <hubicka@ucw.cz>
+ PR target/65531
+ * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
+ comdat groups.
+
+2015-03-27 Jan Hubicka <hubicka@ucw.cz>
+
PR ipa/65600
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
of optimized out indirect call.
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");
}
+ }
}
}
}