Hi,
I noticed while testing a backport of the PR121772 fix to GCC 13 that
the test wasn't triggering the ICE as expected with the unpatched
compiler.
This turned out to be because the ICE is a checking ICE, and we
configure by default with --enable-checking=release on the branches.
Additionally, I hadn't noticed when doing the backports to 15 and 14
since there we still ICE later on in emit_move_insn even if we don't
catch the invalid gimple with checking.
I'm not too sure why the 13 branch doesn't see the emit_move_insn ICE,
but it's somewhat irrelevant - the important thing is that adding
-fchecking to the options makes the test fail as expected with an
unpatched compiler (i.e. with a gimple checking failure), even on
release branches.
I considered applying this patch to just the release branches, but
figured that trunk will at some point itself become a release branch, so
it seems to make most sense just to apply it everywhere.
I've checked that the test still passes with this patch, and still fails
if I revert the PR121772 fix.
Committing to trunk as obvious. Will apply to 15/14, and then squash
into the backport of the fix to 13.
Thanks,
Alex
gcc/testsuite/ChangeLog:
PR tree-optimization/121772
* gcc.target/aarch64/torture/pr121772.c: Add -fchecking to
dg-options.
diff --git a/gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
b/gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
index 3b4cf4d7d18..d47a026c3ce 100644
--- a/gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
+++ b/gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-options "-fchecking" } */
#include <arm_neon.h>
int16_t f(int16x4_t b) {
return vaddvq_s16(vcombine_s16(b, vdup_n_s16 (0)));