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 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


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

--- Comment #27 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-12 14:31:28 UTC ---
(In reply to comment #25)
> On Thu, 12 Jan 2012, hubicka at ucw dot cz wrote:
> 
> > 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...
> 
> Well, not deprecating extern inlines but re-definitions in the
> same TU which miscompiles once the extern inline is used in that
> TU (ok, so you can say in 99% of all cases that won't happen).
> 
> Thus, another workaround would be to avoid transitioning the
> attribute to the redefinition in merge_decls (under the exact
> same condition as we allow the redefinition).

Only a workaround for the ICE, of course, not the miscompile (can
anyone check if we ever did not miscompile this case?)


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