[Bug lto/78407] [5/6/7 Regression] LTO breaks separate overriding of symbol aliases

2017-01-19 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78407

--- Comment #3 from Jan Hubicka  ---
Author: hubicka
Date: Thu Jan 19 10:00:56 2017
New Revision: 244612

URL: https://gcc.gnu.org/viewcvs?rev=244612=gcc=rev
Log:
PR lto/78407
* symtab.c (symtab_node::equal_address_to): Fix comparing of
interposable aliases.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/symtab.c

[Bug lto/78407] [5/6/7 Regression] LTO breaks separate overriding of symbol aliases

2017-01-13 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78407

--- Comment #2 from Jan Hubicka  ---
The following patch fixes the issue
===
--- symtab.c(revision 244386)
+++ symtab.c(working copy)
@@ -1989,13 +1989,12 @@ symtab_node::equal_address_to (symtab_no
   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;
 }

the problem is that if one of symbols is interposable, we can not compare
symbols for equality by comparing their alias targets.  I will think a bit if
this is too conservative.

Honza

[Bug lto/78407] [5/6/7 Regression] LTO breaks separate overriding of symbol aliases

2016-12-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78407

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug lto/78407] [5/6/7 Regression] LTO breaks separate overriding of symbol aliases

2016-12-01 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78407

Jan Hubicka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2016-12-01
   Assignee|unassigned at gcc dot gnu.org  |hubicka at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jan Hubicka  ---
Mine.

[Bug lto/78407] [5/6/7 Regression] LTO breaks separate overriding of symbol aliases

2016-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78407

Richard Biener  changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |5.5
Summary|LTO breaks separate |[5/6/7 Regression] LTO
   |overriding of symbol|breaks separate overriding
   |aliases |of symbol aliases