On 23/04/2025 16:22, Jakub Jelinek wrote:
On Wed, Apr 23, 2025 at 03:57:58PM +0100, Andre Vieira (lists) wrote:
+++ b/gcc/testsuite/gcc.target/aarch64/pr116479.c
@@ -0,0 +1,20 @@
+/* PR 116479 */
+/* { dg-do run } */
+/* { dg-additional-options "-O -funroll-loops -finline-stringops -fmodulo-sched
--param=max-iterations-computation-cost=637924687 -static -std=c23" } */
+_BitInt (13577) b;
+
+void
+foo (char *ret)
+{
+ __builtin_memset (&b, 4, 697);
+ *ret = 0;
+}
+
+int
+main ()
+{
+ char x;
+ foo (&x);
+ for (unsigned i = 0; i < sizeof (x); i++)
+ __builtin_printf ("%02x", i[(volatile unsigned char *) &x]);
Shouldn't these 2 lines instead be
if (x != 0)
__builtin_abort ();
?
Fair, I copied the testcase verbatim from the PR, the error-mode was a
segfault. But I agree a check !=0 with __builtin_abort here seems more
appropriate. Any opinions on whether I should move it to dg with a
bitint target?
+}
Jakub