https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63745
--- Comment #4 from Jan Hubicka <hubicka at ucw dot cz> --- > 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. Honza