From b5a0c45e4e1c5ac36fada1b805713c0ef5454cce Mon Sep 17 00:00:00 2001
From: Andrew Pinski <quic_apinski@quicinc.com>
Date: Tue, 19 Nov 2024 19:49:38 -0800
Subject: [PATCH] aarch64: Fix aarch64 after moving to C23

This fixes a few aarch64 specific testcases after the move to default to GNU C23.
For the SME testcases, the GNU C23 cases as `()` changing to mean `(void)` instead
of a non-prototype declaration; the non-prototype declaration merging was confusing
some of the time so the updated way is the expected way even for that.
For pic-*.c `-Wno-old-style-definition` was added not to warn about old style definitions.
For pr113573.c, I added `-std=gnu17` since I was not sure if `(...)` with C23 would invoke
the same issue.

tested for aarch64-linux-gnu.

	PR testsuite/117680
gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pic-constantpool1.c: Add -Wno-old-style-definition.
	* gcc.target/aarch64/pic-symrefplus.c: Likewise.
	* gcc.target/aarch64/pr113573.c: Add `-std=gnu17`
	* gcc.target/aarch64/sme/streaming_mode_1.c: Correct testcase.
	* gcc.target/aarch64/sme/za_state_1.c: Likewise.
	* gcc.target/aarch64/sme/za_state_2.c: Likewise.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
---
 gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c       | 2 +-
 gcc/testsuite/gcc.target/aarch64/pr113573.c             | 2 +-
 gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c | 4 ++--
 gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c       | 4 ++--
 gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c       | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c b/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
index 755c0b67ea4..1a5da9aacfa 100644
--- a/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
+++ b/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mcmodel=small -fPIC" }  */
+/* { dg-options "-Wno-old-style-definition -O2 -mcmodel=small -fPIC" }  */
 /* { dg-do compile } */
 /* { dg-require-effective-target fpic } */
 
diff --git a/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c b/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
index 0c5e7fe7fb4..ca019ce3b33 100644
--- a/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
+++ b/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -mcmodel=small -fPIC -fno-builtin" }  */
+/* { dg-options "-Wno-old-style-definition -O2 -mcmodel=small -fPIC -fno-builtin" }  */
 /* { dg-do compile } */
 /* { dg-require-effective-target fpic } */
 
diff --git a/gcc/testsuite/gcc.target/aarch64/pr113573.c b/gcc/testsuite/gcc.target/aarch64/pr113573.c
index fc8607f7218..30175c4cb5c 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr113573.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr113573.c
@@ -1,4 +1,4 @@
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -std=gnu17" } */
 
 #pragma GCC aarch64 "arm_neon.h"
 typedef __Uint8x8_t uint8x8_t;
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c b/gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
index 8874b05b882..cb1b05948d8 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
@@ -7,7 +7,7 @@ void sc_b ();
 void sc_b () [[arm::streaming_compatible]]; // { dg-error "conflicting types" }
 
 void sc_c () [[arm::streaming_compatible]];
-void sc_c () {} // Inherits attribute from declaration (confusingly).
+void sc_c () {} // { dg-error "conflicting types" }
 
 void sc_d ();
 void sc_d () [[arm::streaming_compatible]] {} // { dg-error "conflicting types" }
@@ -33,7 +33,7 @@ void s_b ();
 void s_b () [[arm::streaming]]; // { dg-error "conflicting types" }
 
 void s_c () [[arm::streaming]];
-void s_c () {} // Inherits attribute from declaration (confusingly).
+void s_c () {} // { dg-error "conflicting types" }
 
 void s_d ();
 void s_d () [[arm::streaming]] {} // { dg-error "conflicting types" }
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c b/gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
index 856880e2109..7d7989b18b3 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
@@ -7,7 +7,7 @@ void shared_b ();
 void shared_b () [[arm::inout("za")]]; // { dg-error "conflicting types" }
 
 void shared_c () [[arm::inout("za")]];
-void shared_c () {} // Inherits attribute from declaration (confusingly).
+void shared_c () {} // { dg-error "conflicting types" }
 
 void shared_d ();
 void shared_d () [[arm::inout("za")]] {} // { dg-error "conflicting types" }
@@ -33,7 +33,7 @@ void preserved_b ();
 void preserved_b () [[arm::preserves("za")]]; // { dg-error "conflicting types" }
 
 void preserved_c () [[arm::preserves("za")]];
-void preserved_c () {} // Inherits attribute from declaration (confusingly).
+void preserved_c () {} // { dg-error "conflicting types" }
 
 void preserved_d ();
 void preserved_d () [[arm::preserves("za")]] {} // { dg-error "conflicting types" }
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c b/gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
index 572ff309f8d..6f5803078df 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
@@ -30,7 +30,7 @@ void shared_b () [[arm::inout("za")]];
 void shared_c () [[arm::in("za")]] {} // { dg-error "conflicting types" }
 
 void shared_d () [[arm::in("za")]];
-[[arm::new("za")]] void shared_d () {} // { dg-error "cannot create a new 'za' scope since 'za' is shared with callers" }
+[[arm::new("za")]] void shared_d () {} // { dg-error "conflicting types" }
 
 [[arm::new("za")]] void shared_e () {}
 void shared_e () [[arm::out("za")]]; // { dg-error "conflicting types" }
-- 
2.43.0

