aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-12-09 20:35:18 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-12-09 19:35:18 +0000
commit378004b9d2633f4817da26feb2e07ba739b2eba1 (patch)
tree67dd9ada0d311d144f45d0c3ceb077eda686a4f9 /gcc/lto
parent811582ec147f4eb722b75578faba4a94c5cfd829 (diff)
downloadgcc-378004b9d2633f4817da26feb2e07ba739b2eba1.zip
gcc-378004b9d2633f4817da26feb2e07ba739b2eba1.tar.gz
gcc-378004b9d2633f4817da26feb2e07ba739b2eba1.tar.bz2
re PR lto/68811 (ICE: in get, at cgraph.h:1218)
PR lto/68811 * g++.dg/lto/pr68811_0.C: New testcase. * g++.dg/lto/pr68811_1.C: New testcase. * lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed by itself. From-SVN: r231473
Diffstat (limited to 'gcc/lto')
-rw-r--r--gcc/lto/ChangeLog6
-rw-r--r--gcc/lto/lto-symtab.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index faeb3ee..9f0733d 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,5 +1,11 @@
2015-12-08 Jan Hubicka <hubicka@ucw.cz>
+ PR lto/68811
+ * lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed
+ by itself.
+
+2015-12-08 Jan Hubicka <hubicka@ucw.cz>
+
PR ipa/61886
* lto-symtab.c: Include lto-symtab.h.
(lto_cgraph_replace_node): Do not merge profiles here.
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c
index a0cc170..d4868c4 100644
--- a/gcc/lto/lto-symtab.c
+++ b/gcc/lto/lto-symtab.c
@@ -568,7 +568,8 @@ lto_symtab_merge_decls_2 (symtab_node *first, bool diagnosed_p)
for (this_prevailing = prevailing; ;
this_prevailing = this_prevailing->next_sharing_asm_name)
{
- if (lto_symtab_merge_p (this_prevailing->decl, e->decl))
+ if (this_prevailing->decl != e->decl
+ && lto_symtab_merge_p (this_prevailing->decl, e->decl))
break;
if (this_prevailing == last_prevailing)
{
@@ -709,7 +710,7 @@ lto_symtab_merge_decls_1 (symtab_node *first)
&& lto_symtab_symbol_p (e))
prevailing = e;
}
- /* For variables prefer the non-builtin if one is available. */
+ /* For functions prefer the non-builtin if one is available. */
else if (TREE_CODE (prevailing->decl) == FUNCTION_DECL)
{
for (e = first; e; e = e->next_sharing_asm_name)