https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116016
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That is not a prototype. Prototype is what is the C or C++ function type of the builtin. Neither ptr->FAM nor const_exp_with_int_type are valid C types. There is no reason why the second argument should be const, it can be anything convertible to whatever type size_t has, including say for C++ classes with operator long (), _Bool/bool, enumerators, floating point expressions, ...