Hi All,

This patch series relies upon my C++ frontend patch series.
I have uploaded both series to the Forgejo instance
(https://forge.sourceware.org/alfie.richards/gcc-TEST/pulls/1)
both to have a public remote branch to easily pull from and
to allow reviews on there is so desired.

This series adds support for target_version attribute in the C frontend
for the targets which set TARGET_HAS_FMV_TARGET_ATTRIBUTE to false.
(Currently Aarch64 and riscv.)

This differs from my attempt to add target_version support previously
as the ACLE rules were updated to specify the scope and signature
of the function set to be that of the default version. This simplifies
many of the edge cases previously we were dealing with and allows using
the default decl to represent the whole set. (Previously I used the
dispatched symbol creating significant complexity).

This has all been bootstrapped and regression tested on
aarch64-linux-gnu and x86_64-linux-gnu.

This is targeting GCC 16 stage 1.

Kind regards,
Alfie Richards

Alfie Richards (2):
  c: Add target_version attribute support.
  c: Improve diagnostics for C FMV declaration conflicts.

 gcc/c/c-decl.cc                               | 144 +++++++++++++++++-
 gcc/testsuite/gcc.target/aarch64/mv-1.c       |  43 ++++++
 .../gcc.target/aarch64/mv-and-mvc-error1.c    |   9 ++
 .../gcc.target/aarch64/mv-and-mvc-error2.c    |   9 ++
 .../gcc.target/aarch64/mv-and-mvc-error3.c    |   8 +
 .../gcc.target/aarch64/mv-and-mvc1.c          |  37 +++++
 .../gcc.target/aarch64/mv-and-mvc2.c          |  28 ++++
 .../gcc.target/aarch64/mv-and-mvc3.c          |  40 +++++
 .../gcc.target/aarch64/mv-and-mvc4.c          |  37 +++++
 gcc/testsuite/gcc.target/aarch64/mv-error1.c  |  18 +++
 gcc/testsuite/gcc.target/aarch64/mv-error2.c  |   9 ++
 gcc/testsuite/gcc.target/aarch64/mv-error3.c  |  12 ++
 gcc/testsuite/gcc.target/aarch64/mv-error4.c  |   9 ++
 gcc/testsuite/gcc.target/aarch64/mv-error5.c  |   8 +
 gcc/testsuite/gcc.target/aarch64/mv-error6.c  |  20 +++
 gcc/testsuite/gcc.target/aarch64/mv-error7.c  |  11 ++
 gcc/testsuite/gcc.target/aarch64/mv-error8.c  |  12 ++
 gcc/testsuite/gcc.target/aarch64/mv-error9.c  |  12 ++
 .../gcc.target/aarch64/mv-symbols1.c          |  38 +++++
 .../gcc.target/aarch64/mv-symbols10.c         |  42 +++++
 .../gcc.target/aarch64/mv-symbols11.c         |  16 ++
 .../gcc.target/aarch64/mv-symbols12.c         |  27 ++++
 .../gcc.target/aarch64/mv-symbols13.c         |  28 ++++
 .../gcc.target/aarch64/mv-symbols2.c          |  28 ++++
 .../gcc.target/aarch64/mv-symbols3.c          |  27 ++++
 .../gcc.target/aarch64/mv-symbols4.c          |  31 ++++
 .../gcc.target/aarch64/mv-symbols5.c          |  36 +++++
 .../gcc.target/aarch64/mv-symbols6.c          |  20 +++
 .../gcc.target/aarch64/mv-symbols7.c          |  47 ++++++
 .../gcc.target/aarch64/mv-symbols8.c          |  47 ++++++
 .../gcc.target/aarch64/mv-symbols9.c          |  44 ++++++
 gcc/testsuite/gcc.target/aarch64/mvc-error1.c |   9 ++
 gcc/testsuite/gcc.target/aarch64/mvc-error2.c |   9 ++
 .../gcc.target/aarch64/mvc-symbols1.c         |  25 +++
 .../gcc.target/aarch64/mvc-symbols2.c         |  15 ++
 .../gcc.target/aarch64/mvc-symbols3.c         |  19 +++
 .../gcc.target/aarch64/mvc-symbols4.c         |  12 ++
 .../gcc.target/aarch64/mvc-warning1.c         |  13 ++
 38 files changed, 993 insertions(+), 6 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error7.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error9.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols10.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols11.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols12.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols13.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols7.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols9.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-error1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-error2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-warning1.c

-- 
2.34.1

Reply via email to