On Tue, Oct 28, 2025 at 3:55 PM H.J. Lu <[email protected]> wrote:
>
> On Tue, Oct 28, 2025 at 12:07 PM <[email protected]> wrote:
> >
> > Dear contributor,
> >
> > Our automatic CI has detected problems related to your patch(es). Please 
> > find some details below.
> >
> > In gcc_check master-aarch64, after:
> >   | commit gcc-16-4667-gdcf69bdcd49
> >   | Author: H.J. Lu <[email protected]>
> >   | Date:   Sun Oct 26 08:42:20 2025 +0800
> >   |
> >   |     c: Try the type with the previous function attributes
> >   |
> >   |     When there are 2 conflicting function declarations, try the new type
> >   |     with the previous TYPE_ATTRIBUTES if the current declaration has no
> >   |     TYPE_ATTRIBUTES to support
> >   | ... 44 lines of the commit log omitted.
> >
> > Produces 19 regressions:
> >   |
> >   | regressions.sum:
> >   | Running gcc:gcc.target/aarch64/sme/aarch64-sme.exp ...
> >   | FAIL: gcc.target/aarch64/sme/streaming_mode_1.c (test for errors, line 
> > 10)
> >   | FAIL: gcc.target/aarch64/sme/streaming_mode_1.c (test for errors, line 
> > 121)
> >   | FAIL: gcc.target/aarch64/sme/streaming_mode_1.c (test for errors, line 
> > 16)
> >   | FAIL: gcc.target/aarch64/sme/streaming_mode_1.c (test for errors, line 
> > 30)
> >   | ... and 15 more
> >
>
> After
>
> commit dcf69bdcd49bccd901bfb01db7c15530e9a70dc0
> Author: H.J. Lu <[email protected]>
> Date:   Sun Oct 26 08:42:20 2025 +0800
>
>     c: Try the type with the previous function attributes
>
> gcc no longer issues an error for:
>
> void sc_c () [[arm::streaming_compatible]];
> void sc_c () {}
>
> Instead, the previous type attributes are applied to the current function
> definition.  The resulting function definition is compatible with the
> previous declaration.
>
> PR c/122427
> * gcc.target/aarch64/sme/streaming_mode_1.c: Remove dg-error.
>

Here is the v2 patch with the gcc.target/aarch64/sme/za_state_1.c change.


-- 
H.J.
From cbd2586743c2e02152acf8ead3d8b54363101bb3 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <[email protected]>
Date: Tue, 28 Oct 2025 15:49:13 +0800
Subject: [PATCH v2] aarch64: streaming_mode_1.c/za_state_1.c: Remove some
 dg-error

After

commit dcf69bdcd49bccd901bfb01db7c15530e9a70dc0
Author: H.J. Lu <[email protected]>
Date:   Sun Oct 26 08:42:20 2025 +0800

    c: Try the type with the previous function attributes

gcc no longer issues an error for:

void sc_c () [[arm::streaming_compatible]];
void sc_c () {}

Instead, the previous type attributes are applied to the current function
definition.  The resulting function definition is compatible with the
previous declaration.

	PR c/122427
	PR testsuit/122483
	* gcc.target/aarch64/sme/streaming_mode_1.c: Remove some dg-error.
	* gcc.target/aarch64/sme/za_state_1.c: Likewise.

Signed-off-by: H.J. Lu <[email protected]>
---
 .../gcc.target/aarch64/sme/streaming_mode_1.c      | 14 +++++++-------
 gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c  | 14 +++++++-------
 2 files changed, 14 insertions(+), 14 deletions(-)

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 cb1b05948d8..0c532c5c567 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
@@ -1,19 +1,19 @@
 // { dg-options "" }
 
 void sc_a () [[arm::streaming_compatible]];
-void sc_a (); // { dg-error "conflicting types" }
+void sc_a ();
 
 void sc_b ();
 void sc_b () [[arm::streaming_compatible]]; // { dg-error "conflicting types" }
 
 void sc_c () [[arm::streaming_compatible]];
-void sc_c () {} // { dg-error "conflicting types" }
+void sc_c () {}
 
 void sc_d ();
 void sc_d () [[arm::streaming_compatible]] {} // { dg-error "conflicting types" }
 
 void sc_e () [[arm::streaming_compatible]] {}
-void sc_e (); // { dg-error "conflicting types" }
+void sc_e ();
 
 void sc_f () {}
 void sc_f () [[arm::streaming_compatible]]; // { dg-error "conflicting types" }
@@ -27,19 +27,19 @@ extern void (*sc_h) (); // { dg-error "conflicting types" }
 //----------------------------------------------------------------------------
 
 void s_a () [[arm::streaming]];
-void s_a (); // { dg-error "conflicting types" }
+void s_a ();
 
 void s_b ();
 void s_b () [[arm::streaming]]; // { dg-error "conflicting types" }
 
 void s_c () [[arm::streaming]];
-void s_c () {} // { dg-error "conflicting types" }
+void s_c () {}
 
 void s_d ();
 void s_d () [[arm::streaming]] {} // { dg-error "conflicting types" }
 
 void s_e () [[arm::streaming]] {}
-void s_e (); // { dg-error "conflicting types" }
+void s_e ();
 
 void s_f () {}
 void s_f () [[arm::streaming]]; // { dg-error "conflicting types" }
@@ -118,7 +118,7 @@ void keyword_ok_5 () [[arm::streaming_compatible]];
 //----------------------------------------------------------------------------
 
 void keyword_contradiction_1 () __arm_streaming;
-void keyword_contradiction_1 (); // { dg-error "conflicting types" }
+void keyword_contradiction_1 ();
 
 void keyword_contradiction_2 ();
 void keyword_contradiction_2 () __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 7d7989b18b3..5f0bb8e9ac2 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
@@ -1,19 +1,19 @@
 // { dg-options "" }
 
 void shared_a () [[arm::inout("za")]];
-void shared_a (); // { dg-error "conflicting types" }
+void shared_a ();
 
 void shared_b ();
 void shared_b () [[arm::inout("za")]]; // { dg-error "conflicting types" }
 
 void shared_c () [[arm::inout("za")]];
-void shared_c () {} // { dg-error "conflicting types" }
+void shared_c () {}
 
 void shared_d ();
 void shared_d () [[arm::inout("za")]] {} // { dg-error "conflicting types" }
 
 void shared_e () [[arm::inout("za")]] {}
-void shared_e (); // { dg-error "conflicting types" }
+void shared_e ();
 
 void shared_f () {}
 void shared_f () [[arm::inout("za")]]; // { dg-error "conflicting types" }
@@ -27,19 +27,19 @@ extern void (*shared_h) (); // { dg-error "conflicting types" }
 //----------------------------------------------------------------------------
 
 void preserved_a () [[arm::preserves("za")]];
-void preserved_a (); // { dg-error "conflicting types" }
+void preserved_a ();
 
 void preserved_b ();
 void preserved_b () [[arm::preserves("za")]]; // { dg-error "conflicting types" }
 
 void preserved_c () [[arm::preserves("za")]];
-void preserved_c () {} // { dg-error "conflicting types" }
+void preserved_c () {}
 
 void preserved_d ();
 void preserved_d () [[arm::preserves("za")]] {} // { dg-error "conflicting types" }
 
 void preserved_e () [[arm::preserves("za")]] {}
-void preserved_e (); // { dg-error "conflicting types" }
+void preserved_e ();
 
 void preserved_f () {}
 void preserved_f () [[arm::preserves("za")]]; // { dg-error "conflicting types" }
@@ -139,7 +139,7 @@ __arm_new("za") void keyword_ok_6 () {}
 //----------------------------------------------------------------------------
 
 void keyword_conflict_1 () __arm_inout("za");
-void keyword_conflict_1 (); // { dg-error "conflicting types" }
+void keyword_conflict_1 ();
 
 void keyword_conflict_2 ();
 void keyword_conflict_2 () __arm_inout("za"); // { dg-error "conflicting types" }
-- 
2.51.1

Reply via email to