[gcc r12-4709] libstdc++: Fix 17_intro/names.cc on Solaris

Rainer Orth ro@gcc.gnu.org
Tue Oct 26 12:05:51 GMT 2021


https://gcc.gnu.org/g:88037d82d7646d8b04d5940f06e882b3778b7aec

commit r12-4709-g88037d82d7646d8b04d5940f06e882b3778b7aec
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Tue Oct 26 14:00:18 2021 +0200

    libstdc++: Fix 17_intro/names.cc on Solaris
    
    17_intro/names.cc and experimental/names.cc currently FAIL on Solaris
    
    FAIL: 17_intro/names.cc (test for excess errors)
    FAIL: experimental/names.cc (test for excess errors)
    
    Excess errors:
    /usr/include/sys/timespec_util.h:22: error: expected ')' before ';' token
    /usr/include/stdlib.h:157: error: expected unqualified-id before '[' token
    /usr/include/stdlib.h:157: error: expected ')' before '[' token
    
    <sys/timespec_util.h> has
    
    extern int timespeccompare(const struct timespec *l, const struct timespec *r);
    
    while <stdlib.h> has
    
    typedef struct drand48_data {
            unsigned int _initialised;
            unsigned short int x[3];
            unsigned short int a[3];
            unsigned int c;
            unsigned short lastx[3];
    } drand48_data;
    
    both of which are broken by defining r resp. x to ( in the testcase.
    
    Fixed by undoing the defines.  Tested on i386-pc-solaris2.11,
    sparc-sun-solaris2.11, and x86_64-pc-linux-gnu.
    
    
    2021-10-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    
            libstdc++-v3:
            * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.

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

diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc
index b5e926fb09f..2a908ea9fc5 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -251,6 +251,10 @@
 #undef p
 // See https://gcc.gnu.org/ml/libstdc++/2019-05/msg00175.html
 #undef ptr
+// <sys/timespec_util.h> uses this as parameter
+#undef r
+// <stdlib.h> uses this as member of drand48_data
+#undef x
 #endif
 
 #ifdef __VXWORKS__


More information about the Libstdc++-cvs mailing list