[gcc r14-4594] AArch64: Fix Armv9-a warnings that get emitted whenever a ACLE header is used.

Tamar Christina tnfchris@gcc.gnu.org
Thu Oct 12 14:56:53 GMT 2023


https://gcc.gnu.org/g:de593b3cffdc9c030c5e697ad9092b1b085dabc4

commit r14-4594-gde593b3cffdc9c030c5e697ad9092b1b085dabc4
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Oct 12 15:55:58 2023 +0100

    AArch64: Fix Armv9-a warnings that get emitted whenever a ACLE header is used.
    
    At the moment, trying to use -march=armv9-a with any ACLE header such as
    arm_neon.h results in rows and rows of warnings saying:
    
    <built-in>: warning: "__ARM_ARCH" redefined
    <built-in>: note: this is the location of the previous definition
    
    This is obviously not useful and happens because the header was defined at
    __ARM_ARCH == 8 and the commandline changes it.
    
    The Arm port solves this by undef the macro during argument processing and we do
    the same on AArch64 for the majority of macros.  However we define this macro
    using a different helper which requires the manual undef.
    
    Thanks,
    Tamar
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add undef.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/aarch64/armv9_warning.c: New test.

Diff:
---
 gcc/config/aarch64/aarch64-c.cc                  | 1 +
 gcc/testsuite/gcc.target/aarch64/armv9_warning.c | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/gcc/config/aarch64/aarch64-c.cc b/gcc/config/aarch64/aarch64-c.cc
index 578ec6f45b0..ab8844f6049 100644
--- a/gcc/config/aarch64/aarch64-c.cc
+++ b/gcc/config/aarch64/aarch64-c.cc
@@ -82,6 +82,7 @@ aarch64_update_cpp_builtins (cpp_reader *pfile)
 {
   aarch64_def_or_undef (flag_unsafe_math_optimizations, "__ARM_FP_FAST", pfile);
 
+  cpp_undef (pfile, "__ARM_ARCH");
   builtin_define_with_int_value ("__ARM_ARCH", AARCH64_ISA_V9A ? 9 : 8);
 
   builtin_define_with_int_value ("__ARM_SIZEOF_MINIMAL_ENUM",
diff --git a/gcc/testsuite/gcc.target/aarch64/armv9_warning.c b/gcc/testsuite/gcc.target/aarch64/armv9_warning.c
new file mode 100644
index 00000000000..35690d5bce7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/armv9_warning.c
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv9-a -Wpedantic -Werror" } */
+
+#include <arm_neon.h>
+


More information about the Gcc-cvs mailing list