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);

Reply via email to