aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/symtab.c7
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d4d734..f953791 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-01-17 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/78407
+ * symtab.c (symtab_node::equal_address_to): Fix comparing of
+ interposable aliases.
+
2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
PR target/78516
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 8712097..ba395cd 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -1989,13 +1989,12 @@ symtab_node::equal_address_to (symtab_node *s2, bool memory_accessed)
if (rs1 != rs2 && avail1 >= AVAIL_AVAILABLE && avail2 >= AVAIL_AVAILABLE)
binds_local1 = binds_local2 = true;
- if ((binds_local1 ? rs1 : this)
- == (binds_local2 ? rs2 : s2))
+ if (binds_local1 && binds_local2 && rs1 == rs2)
{
/* We made use of the fact that alias is not weak. */
- if (binds_local1 && rs1 != this)
+ if (rs1 != this)
refuse_visibility_changes = true;
- if (binds_local2 && rs2 != s2)
+ if (rs2 != s2)
s2->refuse_visibility_changes = true;
return 1;
}