http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45934
--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> 2010-10-07 16:16:42 UTC --- This testcase is valid. The effective type of an object for virtual dispatch changes during the construction/destruction process; see 12.7 in the standard. So in addition to the static type of the object, the devirtualizer needs to know when a subobject is under construction or destruction.