From 378004b9d2633f4817da26feb2e07ba739b2eba1 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Wed, 9 Dec 2015 20:35:18 +0100 Subject: 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 --- gcc/lto/ChangeLog | 6 ++++++ gcc/lto/lto-symtab.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'gcc/lto') 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 + PR lto/68811 + * lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed + by itself. + +2015-12-08 Jan Hubicka + 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) -- cgit v1.1