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.