https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63298
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-09-18 CC| |hubicka at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> --- It seems I made typo here: Index: ipa-devirt.c =================================================================== --- ipa-devirt.c (revision 215363) +++ ipa-devirt.c (working copy) @@ -526,7 +526,7 @@ return false; /* For ODR types be sure to compare their names. */ - if ((odr_type_p (t1) && !odr_type_p (t2)) + if ((odr_type_p (t1) && odr_type_p (t2)) || (TREE_CODE (t1) == RECORD_TYPE && TREE_CODE (t2) == RECORD_TYPE && TYPE_BINFO (t1) && TYPE_BINFO (t2) && polymorphic_type_binfo_p (TYPE_BINFO (t1)) (I was negating this conditional about 5 times ;). Does it fix the problem?