This fixes PR56147 - we have to care for mismatched symbol kinds during merging.
Committed as obvious. (lto.exp doesn't understand dg-error for link-time issues, so no testcase) Richard. 2013-01-30 Richard Biener <rguent...@suse.de> PR lto/56147 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check. Index: gcc/lto-symtab.c =================================================================== *** gcc/lto-symtab.c (revision 195574) --- gcc/lto-symtab.c (working copy) *************** lto_symtab_merge_decls_1 (symtab_node fi *** 443,449 **** 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; --- 443,450 ---- else if (TREE_CODE (prevailing->symbol.decl) == FUNCTION_DECL) { for (e = first; e; e = e->symbol.next_sharing_asm_name) ! if (TREE_CODE (e->symbol.decl) == FUNCTION_DECL ! && DECL_BUILT_IN (e->symbol.decl)) { prevailing = e; break;