https://gcc.gnu.org/g:c7627054b9ee2ded8a22340a6a09bf9786afcafa
commit r12-10493-gc7627054b9ee2ded8a22340a6a09bf9786afcafa Author: Andrew Pinski <quic_apin...@quicinc.com> Date: Fri Feb 16 10:55:43 2024 -0800 c++: Add testcase for this PR [PR97990] 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> (cherry picked from commit 5f1438db419c9eb8901d1d1d7f98fb69082aec8e) Diff: --- gcc/testsuite/g++.dg/torture/vector-struct-1.C | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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. */ + +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{}); +}