On Fri, Feb 16, 2024 at 11:00:34AM -0800, Andrew Pinski wrote: > This testcase was fixed by r14-5934-gf26d68d5d128c8 but we should add > one to make sure it does not regress again. > > Committed as obvious after a quick test on the testcase. > > PR c++/97990 > > gcc/testsuite/ChangeLog: > > * g++.dg/torture/vector-struct-1.C: New test. > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > --- > gcc/testsuite/g++.dg/torture/vector-struct-1.C | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > create mode 100644 gcc/testsuite/g++.dg/torture/vector-struct-1.C > > diff --git a/gcc/testsuite/g++.dg/torture/vector-struct-1.C > b/gcc/testsuite/g++.dg/torture/vector-struct-1.C > new file mode 100644 > index 00000000000..e2747417e2d > --- /dev/null > +++ b/gcc/testsuite/g++.dg/torture/vector-struct-1.C > @@ -0,0 +1,18 @@ > +/* PR c++/97990 */ > +/* This used to crash with lto and strict aliasing enabled as the > + vector type variant still had TYPE_ALIAS_SET set on it. */
You don't have -Wstrict-aliasing here without which the test didn't ICE. > +typedef __attribute__((__vector_size__(sizeof(short)))) short TSimd; > +TSimd hh(int); > +struct y6 > +{ > + TSimd VALUE; > + ~y6(); > +}; > +template <class T1,class T2> > +auto f2(T1 p1, T2){ > + return hh(p1) <= 0; > +} > +void f1(){ > + f2(0, y6{}); > +} > -- > 2.43.0 > Marek