diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f356c4d75deb..b1a464176a6f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-06-18 Richard Biener + + PR lto/57334 + * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly. + 2013-06-18 Andreas Krebbel PR target/57609 diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c index 6c980f89f2d6..1b447cfb9aeb 100644 --- a/gcc/lto-symtab.c +++ b/gcc/lto-symtab.c @@ -522,19 +522,9 @@ lto_symtab_merge_decls (void) symtab_initialize_asm_name_hash (); FOR_EACH_SYMBOL (node) - if (lto_symtab_symbol_p (node) + if (!node->symbol.previous_sharing_asm_name && node->symbol.next_sharing_asm_name) - { - symtab_node n; - - /* To avoid duplicated work, see if this is first real symbol in the - chain. */ - for (n = node->symbol.previous_sharing_asm_name; - n && !lto_symtab_symbol_p (n); n = n->symbol.previous_sharing_asm_name) - ; - if (!n) - lto_symtab_merge_decls_1 (node); - } + lto_symtab_merge_decls_1 (node); } /* Helper to process the decl chain for the symbol table entry *SLOT. */