https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120654
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- So we get [irange] UNDEFINED into range_fits_type_p and then /* We can only handle integral and pointer types. */ src_type = vr->type (); if (!INTEGRAL_TYPE_P (src_type) && !POINTER_TYPE_P (src_type)) return false; this check is a bit dubious given an 'irange' should guarantee this. We are later checking /* Now we can only handle ranges with constant bounds. */ if (vr->undefined_p () || vr->varying_p ()) return false; anyway, so do this early.