On Wed, 2020-09-02 at 05:13 -0500, Segher Boessenkool wrote: > Hi Will, > > On Tue, Sep 01, 2020 at 09:00:20PM -0500, will schmidt wrote: > > This corrects an issue with the powerpc vector long long > > subtypes. > > As reported by SjMunroe in PR96139. When building some code with > > -Wall > > and attempting to print an element of a "long long vector" with a > > long long > > printf format string, we will report a error because the vector > > sub-type > > was improperly defined as int. > > > > When defining a V2DI_type_node we use a TARGET_POWERPC64 ternary to > > define the V2DI_type_node with "vector long" or "vector long long". > > We also need to specify the proper sub-type when we define the > > type. > > - V2DI_type_node = rs6000_vector_type (TARGET_POWERPC64 ? > > "__vector long" > > - : "__vector long long", > > - intDI_type_node, 2); > > + V2DI_type_node > > + = rs6000_vector_type (TARGET_POWERPC64 > > + ? "__vector long" : "__vector long long", > > + TARGET_POWERPC64 > > + ? long_long_integer_type_node : > > intDI_type_node, > > + 2); > > Can't you just use long_long_integer_type_node in all cases? Or, > what > else is intDI_type_node for 32 bit?
I'm not sure offhand. I'm tending to assume the use of intDI_type_node is critical for some underlying reason. I'll give this a spin with just long_long_integer_type_node and see what happens. thanks, > > > --- /dev/null > > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > > @@ -0,0 +1,32 @@ > > +/* { dg-do compile } */ > > +/* { dg-options "-O2 -Wall -m32 " } */ > > (trailing space, here and elsewhere -- not that it matters of course) yup, will fix. thanks for the review. -Will > > > Segher