https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61998
--- Comment #4 from Jan Hubicka <hubicka at ucw dot cz> --- I suppose VECtors do not like to grow to 0 size. THe following patch fixes the ICE, does it also fixe you real testcases? Index: ipa-devirt.c =================================================================== --- ipa-devirt.c (revision 214303) +++ ipa-devirt.c (working copy) @@ -3822,6 +3845,9 @@ ipa_devirt (void) int nmultiple = 0, noverwritable = 0, ndevirtualized = 0, nnotdefined = 0; int nwrong = 0, nok = 0, nexternal = 0, nartificial = 0; + if (!odr_types.length ()) + return 0; + /* We can output -Wsuggest-final-methods and -Wsuggest-final-types warnings. This is implemented by setting up final_warning_records that are updated by get_polymorphic_call_targets.