[Bug lto/53282] lto and visibility-inlines-hidden makes "wrongly" hidden symbols and in a way that depends on the order of the input compilation units

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 9 10:04:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53282

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-05-09
     Ever Confirmed|0                           |1

--- Comment #7 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-09 09:58:09 UTC ---
(In reply to comment #6)
> On 9 May, 2012, at 11:10 AM, rguenth at gcc dot gnu.org wrote:
> 
> > All hidden symbols are postfixed with something like .local.77.4195, making
> > them no longer the symbols for the explicitely instantiated functions.
> > 
> > I suppose you say that the bug is that you have explicitely instantiated
> > some templates which you want to have appear in the library as exported
> > but LTO makes all instances hidden so that no externally visible symbol
> > for that explicitely instantiated template remains?
> 
> correct.
> The additional point is that this happens only for some symbols, not all, even
> if the definitions/declarations are identical.

Ok, so the question would be - why does GCC think this symbol is not
possibly referenced from outside of the LTO unit?



More information about the Gcc-bugs mailing list