https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63745
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #5 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #4)
> > struct VideoBuffers
> > {
> > void StartDisplayingFrame ();
> > };
> > struct B
> > {
> > VideoBuffers vbuffers;
> > virtual void
> > StartDisplay ()
> > {
> > vbuffers.StartDisplayingFrame ();
> > }
> So we devirtualize to StartDisplay but that leads to linker failure because
> StartDisplayingFrame is not linked with the object file.
>
> I think this is similar to some earlier testcases we run across in
> libreoffice
> and we managed to declare it invalid - if you provide inline function body
> you
> need to link the unit with symbols it uses.
OK. That was my fist reaction, too.
But it is irritating that it succeeds with -flto.