On Mon, Nov 21, 2011 at 10:53:49PM +0100, Peter Kümmel wrote: > On 21.11.2011 21:24, André Pönitz wrote: > > > >First guess: gcc sees 'virtual' on two member functions but no virtual > >destructor, cannot prove that delete operates only on static type == > > > > Yes, seems the warning is completely valid: GuiWorkArea::Private has a > virtual table but no virtual destructor. It points to superfluous > virtual functions which are wrong in GuiWorkArea::Private and only > slow down the code.
We seem to have different opions on what constitutes a "valid" warning. I am not a native English speaker, but in my limited understanding of the language "GuiWorkArea.cpp:327:9: warning: deleting object of polymorphic class type ‘lyx::frontend::GuiWorkArea::Private’ which has non-virtual destructor might cause undefined behaviour " and "GuiWorkArea.cpp:112:9: warning: declaring a virtual function in a class that is never subclassed might make generated code slower than needed when using bad code generators which are not able to substitute a direct base call after detecting the fact. As I am a good compiler and just detected the possibility to perform said optimization, I just applied it and did not even bother you with a warning. Now, please forget what you just saw." are not equivalent. Andre' PS: Spoiler ahead. The line numbers differ.