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;

Reply via email to