On Fri, Aug 04, 2017 at 12:50:36PM -0400, Jason Merrill wrote: > On Wed, Aug 2, 2017 at 3:38 AM, Jakub Jelinek <ja...@redhat.com> wrote: > > I've bootstrapped/regtested the following patch last night and committed > > after preapproval from Nathan, though of course a question is if > > lookup_fnfields_slot/lookup_fnfields_slot_nolazy shouldn't have > > if (!CLASS_TYPE_P (type)) return NULL_TREE; or > > gcc_assert (!CLASS_TYPE_P (type)); > > readded to the beginning of those functions. > > It seems that we already ICE if we call it with a non-class type, so > adding an assert would just document that behavior?
CLASSTYPE_METHOD_VEC doesn't exactly check CLASS_TYPE_P if checking, it just requires that LANG_TYPE_CLASS_CHECK is non-NULL (dunno if there are any non-CLASS_TYPE_P types that have it non-NULL, or any CLASS_TYPE_P types that have it NULL). But yes, for checking builds it would be primarily documentation, for checking builds likely too, because if TYPE_LANG_SPECIFIC is NULL, then CLASSTYPE_METHOD_VEC will dereference NULL. Jakub