2016-01-18 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Jan 2016 12:19:31 +0000 (12:19 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Jan 2016 12:19:31 +0000 (12:19 +0000)
PR lto/69337
* lto-symtab.c (lto_symtab_merge): Return early for mismatched
function vs. variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232505 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/lto/ChangeLog
gcc/lto/lto-symtab.c

index 352fe17..724a525 100644 (file)
@@ -1,3 +1,9 @@
+2016-01-18  Richard Biener  <rguenther@suse.de>
+
+       PR lto/69337
+       * lto-symtab.c (lto_symtab_merge): Return early for mismatched
+       function vs. variable.
+
 2016-01-12  Richard Biener  <rguenther@suse.de>
 
        PR lto/69077
index a6f6d01..b22dea8 100644 (file)
@@ -303,6 +303,9 @@ lto_symtab_merge (symtab_node *prevailing, symtab_node *entry)
   if (prevailing_decl == decl)
     return true;
 
+  if (TREE_CODE (decl) != TREE_CODE (prevailing_decl))
+    return false;
+
   /* Merge decl state in both directions, we may still end up using
      the new decl.  */
   TREE_ADDRESSABLE (prevailing_decl) |= TREE_ADDRESSABLE (decl);