This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/33763] [4.4/4.5/4.6/4.7 Regression] Bogus inlining failed in call to `xxx': redefined extern inline functions are not considered for inlining
- From: "hubicka at ucw dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 12 Jan 2012 14:22:52 +0000
- Subject: [Bug c/33763] [4.4/4.5/4.6/4.7 Regression] Bogus inlining failed in call to `xxx': redefined extern inline functions are not considered for inlining
- Auto-submitted: auto-generated
- References: <bug-33763-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33763
--- Comment #24 from Jan Hubicka <hubicka at ucw dot cz> 2012-01-12 14:22:52 UTC ---
> OTOH, it is time to deprecate this extension and warn about it (after
> all we miscompile this since quite some time, GCC 3.3 and 4.1 already produce
> the recursive open - how was this intended to work? ...) I don't have
> 3.2 (and 2.95 does not have always_inline).
pre cgraph compilers handled it in a way that inline body was kept after
parsing
extern inline version and inlined into every new parsed function until
the offline version was reached. Then the function was marked uninlinable,
offline body was produced and all subsequentely parsed calls was not inlined
(including calls in the offline body).
I think extern inlines are sadly rather common to be deprecated...
Honza