Hello, gcc/testsuite/gcc.dg/cpp/ucs.c #include <limits.h> and then crafts a definition of WCHAR_MAX depending on __WCHAR_TYPE__.
The test fails in VxWorks configurations because WCHAR_MAX is already exposed by the system limits.h. The attached patch simply guards the tentative definition by a check verifying if the macro is defined already, so we're using the value exposed by limits.h in this case. This allows the test to pass on the configurations where we saw it failing, and bootstrap+regtest fine on x86_64-linux. Ok to commit ? Thanks in advance, With Kind Regards, Olivier 2019-12-20 Olivier Hainque <hain...@adacore.com> * testsuite/gcc.dg/cpp/ucs.c: Prevent redefinition of WCHAR_MAX if already exposed by limits.h.
gcc/testsuite/gcc.dg/cpp/ucs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/testsuite/gcc.dg/cpp/ucs.c b/gcc/testsuite/gcc.dg/cpp/ucs.c index cac83f3cf14..f52cd571258 100644 --- a/gcc/testsuite/gcc.dg/cpp/ucs.c +++ b/gcc/testsuite/gcc.dg/cpp/ucs.c @@ -16,6 +16,8 @@ #define short +2 #define long +3 +#if !defined(WCHAR_MAX) + #if __WCHAR_TYPE__ == 0 # define WCHAR_MAX INT_MAX #elif __WCHAR_TYPE__ == 1 @@ -28,6 +30,8 @@ # error wacky wchar_t #endif +#endif + #undef unsigned #undef int #undef char -- 2.17.1