diff options
author | Martin Liska <mliska@suse.cz> | 2018-11-16 13:49:32 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-11-16 12:49:32 +0000 |
commit | 12eac2321bb613a447197e7a1308d4ce4a266dd5 (patch) | |
tree | 0bb4e956c2dd5a9145afc71667fe9dbcad7f0a08 /gcc/lto/lto-symtab.c | |
parent | f6dee9fef9bd27698e66fb8a15d90cceb2fbe5a3 (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.c | 5 |
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 |