This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/44463] whopr does not work with weak functions
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 7 Jan 2011 00:52:53 +0000
- Subject: [Bug lto/44463] whopr does not work with weak functions
- Auto-submitted: auto-generated
- References: <bug-44463-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44463
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |NEW
CC| |rguenther at suse dot de
--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-07 00:52:34 UTC ---
Richi,
I am going to post alias fix that resolve most of breakness, but we still have
multiple decl problem with 1to1.
The reason is simple, there is
void x(void) __attribute__((weak, alias("y")));
in one unit and
void x(void) { printf("strong\n"); }
in the other, so it is alias that gets prevailed by real function body.
lto-symtab handles that but we end up with two declarations, one in cgraph (the
one with body) and other in alias pairs as those are not subject of merging.
I think when merging decls, we need to remove associated alias pairs too.
lto-symtab is mostly yours, any idea how this can be best implemented?
Unasigning myself until this is discussed better.
Honza