diff options
Diffstat (limited to 'gcc/lto-symtab.c')
-rw-r--r-- | gcc/lto-symtab.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c index 295fd37aa38..b6ff02807de 100644 --- a/gcc/lto-symtab.c +++ b/gcc/lto-symtab.c @@ -439,6 +439,16 @@ lto_symtab_merge_decls_1 (symtab_node first) && COMPLETE_TYPE_P (TREE_TYPE (e->symbol.decl))) prevailing = e; } + /* For variables prefer the builtin if one is available. */ + else if (TREE_CODE (prevailing->symbol.decl) == FUNCTION_DECL) + { + for (e = first; e; e = e->symbol.next_sharing_asm_name) + if (DECL_BUILT_IN (e->symbol.decl)) + { + prevailing = e; + break; + } + } } symtab_prevail_in_asm_name_hash (prevailing); |