[Bug lto/43038] DECL_PRESERVE_P or attribute((used)) static globals not completely preserved with -flto

joseph at codesourcery dot com gcc-bugzilla@gcc.gnu.org
Tue Mar 1 16:39:00 GMT 2011


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

--- Comment #9 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2011-03-01 16:39:23 UTC ---
On Tue, 1 Mar 2011, d.g.gorbachev at gmail dot com wrote:

> > The problem is that statics need to be mangled, so they persist
> > as i.1234 instead.  Really refering to a local symbol in asm is
> > going to be difficult with LTO (any global or other static symbol
> > with name i will cause a non-resolvable conflict).
> 
> One solution is to introduce a new attribute, say "nomangle", and shift
> responsibility for possible conflicts on a user.

The original LTO proposal included assembler changes to allow multiple 
local symbols with the same name in the output.  You could resurrect that, 
though allowing references to the multiple local symbols from asm imposes 
extra requirements on what the assembler interface must look like 
(directives to say which versions are being referred to by asms in a 
particular part of the input?).



More information about the Gcc-bugs mailing list