aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-01-19 11:00:56 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2017-01-19 10:00:56 +0000
commitea83dcf68d805065fc63a98056a0504ffcf5c2aa (patch)
treec480d824105b61dab47331a0b1811849862ef339 /gcc
parentf457ef94da5ab102818f9010407f759ca17e7cc4 (diff)
downloadgcc-ea83dcf68d805065fc63a98056a0504ffcf5c2aa.zip
gcc-ea83dcf68d805065fc63a98056a0504ffcf5c2aa.tar.gz
gcc-ea83dcf68d805065fc63a98056a0504ffcf5c2aa.tar.bz2
re PR lto/78407 (LTO breaks separate overriding of symbol aliases)
PR lto/78407 * symtab.c (symtab_node::equal_address_to): Fix comparing of interposable aliases. From-SVN: r244612
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;
}