[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