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.


-- 
H.J.
From 3e56da734f7dec9a2a49991cd18dd3b012da6708 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <[email protected]>
Date: Tue, 28 Oct 2025 15:49:13 +0800
Subject: [PATCH] aarch64: streaming_mode_1.c: Remove 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
	* gcc.target/aarch64/sme/streaming_mode_1.c: Remove dg-error.

Signed-off-by: H.J. Lu <[email protected]>
---
 .../gcc.target/aarch64/sme/streaming_mode_1.c      | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 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" }
-- 
2.51.1

Reply via email to