Conditionally #undef some more names that are used in system headers. libstdc++-v3/ChangeLog:
PR libstdc++/97088 * testsuite/17_intro/names.cc: Undef more names for newlib and also for arm-none-linux-gnueabi. * testsuite/experimental/names.cc: Disable PCH. Tested powerpc64le-linux. Committed to trunk.
commit e83a5a6b6893e910dc0b6b1cd034e1a258406c93 Author: Jonathan Wakely <jwak...@redhat.com> Date: Fri Jun 25 18:31:22 2021 libstdc++: More workarounds in 17_intro/names.cc test [PR 97088] Conditionally #undef some more names that are used in system headers. libstdc++-v3/ChangeLog: PR libstdc++/97088 * testsuite/17_intro/names.cc: Undef more names for newlib and also for arm-none-linux-gnueabi. * testsuite/experimental/names.cc: Disable PCH. diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc index 534dab70ff5..805c1002c3f 100644 --- a/libstdc++-v3/testsuite/17_intro/names.cc +++ b/libstdc++-v3/testsuite/17_intro/names.cc @@ -208,6 +208,11 @@ #undef r #endif +#if defined (__linux__) && defined (__arm__) +// <sys/ucontext.h> defines fpregset_t::fpregs::j +#undef j +#endif + #if defined (__linux__) && defined (__powerpc__) // <asm/types.h> defines __vector128::u #undef u @@ -220,6 +225,15 @@ #if ! __has_include(<newlib.h>) // newlib's <sys/cdefs.h> defines __lockable as a macro, so we can't use it. # define __lockable cannot be used as an identifier +// newlib's <time.h> defines __tzrule_type with these members. +#undef d +#undef m +#undef n +#undef s +// newlib's <math.h> uses this for parameters +#undef x +// newlib's <inttypes.h> uses this for parameters +#undef j #endif #ifdef __sun__ diff --git a/libstdc++-v3/testsuite/experimental/names.cc b/libstdc++-v3/testsuite/experimental/names.cc index 34ec3ba5968..d695a258f2c 100644 --- a/libstdc++-v3/testsuite/experimental/names.cc +++ b/libstdc++-v3/testsuite/experimental/names.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-add-options no_pch } // Define macros for some common variables names that we must not use for // naming variables, parameters etc. in the library.