https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103622
--- Comment #8 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- Hm, no, it's probably just that it's iterating looking for long double and runs across this instance with an uninitialized function type. So this patch solves the problem: diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index 8e83d97e72f..fc4cc929884 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -2943,6 +2943,12 @@ altivec_resolve_new_overloaded_builtin (location_t loc, tree fndecl, for (; instance != NULL; instance = instance->next) { + /* It is possible for an instance to require a data type that isn't + defined on this target, in which case instance->fntype will be + NULL. */ + if (!instance->fntype) + continue; + bool mismatch = false; tree nextparm = TYPE_ARG_TYPES (instance->fntype);