aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2023-10-12 15:55:58 +0100
committerTamar Christina <tamar.christina@arm.com>2023-10-12 15:55:58 +0100
commitde593b3cffdc9c030c5e697ad9092b1b085dabc4 (patch)
tree331ff8fb15ce3c9dc0d480adccb8da30e6f651cc /gcc
parentfb590e4eeb1aa897209b853430dc4854ece97802 (diff)
downloadgcc-de593b3cffdc9c030c5e697ad9092b1b085dabc4.zip
gcc-de593b3cffdc9c030c5e697ad9092b1b085dabc4.tar.gz
gcc-de593b3cffdc9c030c5e697ad9092b1b085dabc4.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/aarch64-c.cc1
-rw-r--r--gcc/testsuite/gcc.target/aarch64/armv9_warning.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64-c.cc b/gcc/config/aarch64/aarch64-c.cc
index 578ec6f..ab8844f 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 0000000..35690d5
--- /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>
+