diff options
Diffstat (limited to 'gcc/lto-symtab.c')
-rw-r--r-- | gcc/lto-symtab.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c index 28e9aa3..f02824d 100644 --- a/gcc/lto-symtab.c +++ b/gcc/lto-symtab.c @@ -463,7 +463,13 @@ lto_symtab_resolve_symbols (void **slot) if (TREE_CODE (e->decl) == FUNCTION_DECL) e->node = cgraph_get_node (e->decl); else if (TREE_CODE (e->decl) == VAR_DECL) - e->vnode = varpool_get_node (e->decl); + { + e->vnode = varpool_get_node (e->decl); + /* The LTO plugin for gold doesn't handle common symbols + properly. Let us choose manually. */ + if (DECL_COMMON (e->decl)) + e->resolution = LDPR_UNKNOWN; + } } e = (lto_symtab_entry_t) *slot; |