summaryrefslogtreecommitdiff
path: root/gcc/lto/lto-symtab.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-11-16 13:49:32 +0100
committerMartin Liska <marxin@gcc.gnu.org>2018-11-16 12:49:32 +0000
commit12eac2321bb613a447197e7a1308d4ce4a266dd5 (patch)
tree0bb4e956c2dd5a9145afc71667fe9dbcad7f0a08 /gcc/lto/lto-symtab.c
parentf6dee9fef9bd27698e66fb8a15d90cceb2fbe5a3 (diff)
Fix ICE in lto_symtab_merge_symbols_1 (PR lto/88004).
2018-11-16 Martin Liska <mliska@suse.cz> PR lto/88004 * lto-symtab.c (lto_symtab_merge_symbols_1): Do not call lto_symtab_symbol_p as it does checking of transparent alias. These needs to be also merged in the function. From-SVN: r266207
Diffstat (limited to 'gcc/lto/lto-symtab.c')
-rw-r--r--gcc/lto/lto-symtab.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c
index 4b24b84774d..18437eb2841 100644
--- a/gcc/lto/lto-symtab.c
+++ b/gcc/lto/lto-symtab.c
@@ -894,10 +894,11 @@ lto_symtab_merge_symbols_1 (symtab_node *prevailing)
e = next)
{
next = e->next_sharing_asm_name;
+ cgraph_node *ce = dyn_cast <cgraph_node *> (e);
- if (!lto_symtab_symbol_p (e))
+ if ((!TREE_PUBLIC (e->decl) && !DECL_EXTERNAL (e->decl))
+ || (ce != NULL && ce->global.inlined_to))
continue;
- cgraph_node *ce = dyn_cast <cgraph_node *> (e);
symtab_node *to = symtab_node::get (lto_symtab_prevailing_decl (e->decl));
/* No matter how we are going to deal with resolution, we will ultimately