The test was declaring 'int *carry;' and wrote to '*carry' without
initializing 'carry' first, leading to an attempt to write at address
zero, and a crash.

Fix by declaring 'int carry;' and passing '&carrry' instead of 'carry'
as parameter.

2023-09-08  Christophe Lyon  <christophe.l...@linaro.org>

        gcc/testsuite/
        * gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c: Fix.
---
 .../arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c | 34 +++++++++----------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/gcc/testsuite/gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c 
b/gcc/testsuite/gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c
index a8c6cce67c8..931c9d2f30b 100644
--- a/gcc/testsuite/gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c
+++ b/gcc/testsuite/gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c
@@ -7,7 +7,7 @@
 
 volatile int32x4_t c1;
 volatile uint32x4_t c2;
-int *carry;
+int carry;
 
 int
 main ()
@@ -21,45 +21,45 @@ main ()
   uint32x4_t inactive2 = vcreateq_u32 (0, 0);
 
   mve_pred16_t p = 0xFFFF;
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
 
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c1 = vadcq (a1, b1, carry);
+  c1 = vadcq (a1, b1, &carry);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c2 = vadcq (a2, b2, carry);
+  c2 = vadcq (a2, b2, &carry);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c1 = vsbcq (a1, b1, carry);
+  c1 = vsbcq (a1, b1, &carry);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c2 = vsbcq (a2, b2, carry);
+  c2 = vsbcq (a2, b2, &carry);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c1 = vadcq_m (inactive1, a1, b1, carry, p);
+  c1 = vadcq_m (inactive1, a1, b1, &carry, p);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c2 = vadcq_m (inactive2, a2, b2, carry, p);
+  c2 = vadcq_m (inactive2, a2, b2, &carry, p);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c1 = vsbcq_m (inactive1, a1, b1, carry, p);
+  c1 = vsbcq_m (inactive1, a1, b1, &carry, p);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
-  (*carry) = 0xFFFFFFFF;
+  carry = 0xFFFFFFFF;
   __builtin_arm_set_fpscr_nzcvqc (0);
-  c2 = vsbcq_m (inactive2, a2, b2, carry, p);
+  c2 = vsbcq_m (inactive2, a2, b2, &carry, p);
   if (__builtin_arm_get_fpscr_nzcvqc () & !0x20000000)
     __builtin_abort ();
 
-- 
2.34.1

Reply via email to