From: Jan Hubicka Date: Thu, 19 Jan 2017 10:00:56 +0000 (+0100) Subject: re PR lto/78407 (LTO breaks separate overriding of symbol aliases) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ea83dcf68d805065fc63a98056a0504ffcf5c2aa;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d4d73463ca..f9537916562 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-01-17 Jan Hubicka + + PR lto/78407 + * symtab.c (symtab_node::equal_address_to): Fix comparing of + interposable aliases. + 2017-01-18 Peter Bergner PR target/78516 diff --git a/gcc/symtab.c b/gcc/symtab.c index 87120970d34..ba395cdd26b 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; }