From 634c5bcafabedcd635e64e224973681ad2afc7b9 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 17 Dec 2019 16:57:25 +0100 Subject: symtab.c (symtab_node::get_partitioning_class): Aliases of external symbols are external. * symtab.c (symtab_node::get_partitioning_class): Aliases of external symbols are external. From-SVN: r279464 --- gcc/symtab.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/symtab.c') diff --git a/gcc/symtab.c b/gcc/symtab.c index a88f45c..10b8ed1 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1952,6 +1952,11 @@ symtab_node::get_partitioning_class (void) if (DECL_EXTERNAL (decl)) return SYMBOL_EXTERNAL; + /* Even static aliases of external functions as external. Those can happen + when COMDAT got resolved to non-IL implementation. */ + if (alias && DECL_EXTERNAL (ultimate_alias_target ()->decl)) + return SYMBOL_EXTERNAL; + if (varpool_node *vnode = dyn_cast (this)) { if (alias && definition && !ultimate_alias_target ()->definition) -- cgit v1.1