[mythtv] [mythtv-commits] mythtv/master commit: 67abaa6d2 by Stuart Morgan (stuartm)

Markus Schulz msc at antzsystem.de
Sun Feb 27 13:11:35 UTC 2011


Am Sonntag 27 Februar 2011 schrieb Stuart Morgan:
> It's worked for three years. I'd be interested to know why it's now
> failing with no apparent changes to the code.
> 
> There are lots of similar instances throughout the code base which
> would need fixing if this were a gcc bug, but I don't see how that's
> possible - I'm only seeing this bug now and my version of gcc hasn't
> changed in months.

if all functions are inline (without at least one virtual function) the 
compiler generates no vtable entry for this class and dynamic_cast can't 
work.

you can check with(sample output from working version with ctor in cpp):
nm mythprogressdialog.o |c++filt |grep vtable
                 U vtable for MythUIBusyDialog
0000000000000000 V vtable for ProgressUpdateEvent
                 U vtable for MythUIProgressDialog
                 U vtable for __cxxabiv1::__si_class_type_info


i'm still searching for the commit which brokes the vtable generation.
But to be sure, each derived class should have at least one function 
(virtual dtor) be implemented in cpp file.

msc


More information about the mythtv-dev mailing list