[gcc r12-3149] libstdc++: Fix names.cc test failures on Windows

Jonathan Wakely redi@gcc.gnu.org
Wed Aug 25 23:08:30 GMT 2021


https://gcc.gnu.org/g:f1a08f4d7839a0197a28ecd9ca6d4400769da3a7

commit r12-3149-gf1a08f4d7839a0197a28ecd9ca6d4400769da3a7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 25 22:27:22 2021 +0100

    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 <jwakely@redhat.com>
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/17_intro/names.cc: Adjust for Windows.

Diff:
---
 libstdc++-v3/testsuite/17_intro/names.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

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>


More information about the Libstdc++-cvs mailing list