On 8/11/20 9:00 PM, Segher Boessenkool wrote: > Not just params, but return values as well. "Error on MMA types in > function prototype"?
Yes, it started out as a function param issue and then while working on this, I decided I better look at what happens when they're used as return values. I'll update the commit message to include return values. >> + static struct function *fn = NULL; >> + >> + /* We do not allow MMA types being used as return values. Only report >> + the invalid return value usage the first time we encounter it. */ >> + if (for_return >> + && fn != cfun >> + && (mode == POImode || mode == PXImode)) > > "fn" is always zero here. > >> + { >> + fn = cfun; > > And what you set here is unused. It's a static local variable, so how is it always zero and unused? >> +/* { dg-options "-mdejagnu-cpu=power10 -O2 -w" } */ > > Do you need -w or could a less heavy hammer work as well? I could probably declare bar0(), bar1(), bar2() and bar3() and those might go away? I didn't for some reason, but that may have been for some earlier iteration of the test case. I'll have a look at removing that. Peter