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
