The Windows CRT headers define structs with members called f, x, y etc
so don't check those. There are also lots of unnecessary function
parameters in mingw headers using non-reserved names, e.g.

<time.h> uses p and z as parameters of mingw_gettimeofday
<inttypes.h> uses j as a parameter of imaxabs
<pthread.h> uses l, o and func as parameter names

Those should be fixed in the headers instead.

Signed-off-by: Jonathan Wakely <jwak...@redhat.com>

libstdc++-v3/ChangeLog:

        * testsuite/17_intro/names.cc: Adjust for Windows.

Tested powerpc64le-linux. Committed to trunk.

commit f1a08f4d7839a0197a28ecd9ca6d4400769da3a7
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed Aug 25 22:27:22 2021

    libstdc++: Fix names.cc test failures on Windows
    
    The Windows CRT headers define structs with members called f, x, y etc
    so don't check those. There are also lots of unnecessary function
    parameters in mingw headers using non-reserved names, e.g.
    
    <time.h> uses p and z as parameters of mingw_gettimeofday
    <inttypes.h> uses j as a parameter of imaxabs
    <pthread.h> uses l, o and func as parameter names
    
    Those should be fixed in the headers instead.
    
    Signed-off-by: Jonathan Wakely <jwak...@redhat.com>
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/17_intro/names.cc: Adjust for Windows.

diff --git a/libstdc++-v3/testsuite/17_intro/names.cc 
b/libstdc++-v3/testsuite/17_intro/names.cc
index 3cbe0d2da54..b0cc21d6cda 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -287,4 +287,14 @@
 
 #endif // __VXWORKS__
 
+#ifdef _WIN32
+#undef Value
+// <stdlib.h> defines _CRT_FLOAT::f
+#undef f
+// <stdlib.h> defines _CRT_DOUBLE::x and _LONGDOUBLE::x
+#undef x
+// <math.h> defines _complex::x and _complex::y
+#undef y
+#endif
+
 #include <bits/stdc++.h>

Reply via email to