------- Comment #10 from rguenth at gcc dot gnu dot org 2010-09-18 15:06 ------- Well - I think the point is that if the dynamic type of storage differs from its static type (as it happens with placement new) you cannot rely on TYPE_BINFO to be correct at all.
Which means that instead of ICEing you can get wrong code easily as well. I think you need to dump using TYPE_BINFO completely and instead rely on the function pointer only. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45580