diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2017-01-19 11:00:56 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-01-19 10:00:56 +0000 |
commit | ea83dcf68d805065fc63a98056a0504ffcf5c2aa (patch) | |
tree | c480d824105b61dab47331a0b1811849862ef339 /gcc | |
parent | f457ef94da5ab102818f9010407f759ca17e7cc4 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/symtab.c | 7 |
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; } |