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

Reply via email to