aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-01-18 12:19:31 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-01-18 12:19:31 +0000
commit13092f619889805136f945718288a3c17c6beae1 (patch)
treebba0855e3a75907bc0d47ff845f7464e3c4b55bd /gcc/lto
parent9c5ad80efd80e3962bb7e09bc3ab73545f56d549 (diff)
downloadgcc-13092f619889805136f945718288a3c17c6beae1.zip
gcc-13092f619889805136f945718288a3c17c6beae1.tar.gz
gcc-13092f619889805136f945718288a3c17c6beae1.tar.bz2
re PR lto/69337 (Internal compiler error fortran c lto)
2016-01-18 Richard Biener <rguenther@suse.de> PR lto/69337 * lto-symtab.c (lto_symtab_merge): Return early for mismatched function vs. variable. From-SVN: r232505
Diffstat (limited to 'gcc/lto')
-rw-r--r--gcc/lto/ChangeLog6
-rw-r--r--gcc/lto/lto-symtab.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 352fe17..724a525 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -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
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c
index a6f6d01..b22dea8 100644
--- a/gcc/lto/lto-symtab.c
+++ b/gcc/lto/lto-symtab.c
@@ -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);