diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-12-09 20:35:18 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-12-09 19:35:18 +0000 |
commit | 378004b9d2633f4817da26feb2e07ba739b2eba1 (patch) | |
tree | 67dd9ada0d311d144f45d0c3ceb077eda686a4f9 /gcc/lto | |
parent | 811582ec147f4eb722b75578faba4a94c5cfd829 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto-symtab.c | 5 |
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) |