This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

--- Comment #15 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-03-02 16:39:09 UTC ---
(In reply to comment #14)
> Ah, the reason for writting reply was primarily the observation that enforcing
> partitioning based on origin of asm statement won't fly with crossmoudle
> inlining, so I think it is quite useless complication of the whole thing.

Well, with a used global local decl I would just leave the unit alone,
doing a 1:1 partition for it (not mangling it).  That way we can even
handle multiple conflicting used declared statics ...

Of course that's the same end-result as if the user would compile the
unit without -flto.

Not sure if it's worth going that way though.

> Also the not mangling unless we hit conflict probably should be implemented
> in a way that when conflict exists all static of same name are renamed, so
> asm statements won't compile rather that end up referring random other
> variable.

Yes (assuming people forgot to annotate vars with attribute((used))).

We should also consider mangling them according to the function
or TU context, also for easier debugging.  Not sure if this is possible
without running into target limitations though.

Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]