From 326a8c047ecb0598b8403a4fe016bd67c8991d90 Mon Sep 17 00:00:00 2001
From: Christophe Lyon <christophe.lyon@linaro.org>
Date: Fri, 8 Sep 2023 08:38:10 +0000
Subject: [PATCH] testsuite: Fix
 gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c

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.lyon@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 a8c6cce67c8e..931c9d2f30bc 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 ();
 
-- 
GitLab