Hi! I'd like to ping this patch, now that I'm back from break. Thanks! Bill
On 12/13/21 10:15 AM, Bill Schmidt wrote: > Hi! > > For some data types like IEEE-128, we determine whether the type is available > at built-in function initialization time. If it's not, then we don't provide > the function type for function instances that require the data type. PR103622 > observes that this can cause us to ICE when running the list of instances when > the target doesn't support the data type. > > Ideally, we wouldn't even put such an instance in the list of instances that > an overload can map to, but to do that is much more complicated. Instead, > this patch just ensures we don't dereference a NULL pointer when the situation > arises. > > Tested the fix on a powerpc-e300c3-linux-gnu cross. Bootstrapped and tested > on > powerpc64le-linux-gnu with no regressions. Is this okay for trunk? > > Thanks! > Bill > > > 2021-12-13 Bill Schmidt <wschm...@linux.ibm.com> > > gcc/ > PR target/103622 > * config/rs6000/rs6000-c.c (altivec_resolve_new_overloaded_builtin): > Skip over instances with undefined function types. > --- > gcc/config/rs6000/rs6000-c.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > 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); >