Message ID | patch-17819-tamar@arm.com |
---|---|
State | New |
Headers | show |
Series | None | expand |
Tamar Christina <tamar.christina@arm.com> writes: > Hi All, > > 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. > > Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. > > Ok for master? > > Thanks, > Tamar > > gcc/ChangeLog: > > * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add undef. OK! Thanks for fixing this. Richard. > > gcc/testsuite/ChangeLog: > > * gcc.target/aarch64/armv9_warning.c: New test. > > --- inline copy of patch -- > diff --git a/gcc/config/aarch64/aarch64-c.cc b/gcc/config/aarch64/aarch64-c.cc > index 578ec6f45b06347d90f951b37064006786baf10f..ab8844f6049dc95b97648b651bfcd3a4ccd3ca0b 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 0000000000000000000000000000000000000000..35690d5bce790e11331788aacef00f3f35cdf216 > --- /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> > +
--- 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 0000000000000000000000000000000000000000..35690d5bce790e11331788aacef00f3f35cdf216 --- /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> +