This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
3.1.1 PATCH: Fix libstdc++-v3 isprint for Solaris 2.5.1
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: libstdc++ at gcc dot gnu dot org
- Date: Sat, 13 Jul 2002 02:46:54 +0200 (MEST)
- Subject: 3.1.1 PATCH: Fix libstdc++-v3 isprint for Solaris 2.5.1
Comparing Solaris 2.5.1/SPARC testsuite results between 3.1 and the current
branch, I noticed a new failure:
+FAIL: 22_locale/ctype_scan_char.cc execution test
Assertion failed: gctype.scan_is((std::ctype_base::print), (cs), (cs) + traits_type::length(cs)) == (cs), file /vol/gnu/src/gcc/gcc-3.1-branch-dist/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc, line 226
This is not a regression since the test was only introduced after the 3.1
release, but it's a stupid bug and trivial to fix:
The definition of print in the solaris2.5 ctype_base.h doesn't match
/usr/include/ctype.h: The latter includes _B (i.e. 0100, a Blank
indicator), while the former includes 0200 (i.e. _X, heXadecimal digit).
The fix was tested by rebuilding and re-testing libstdc++-v3 on
sparc-sun-solaris2.5.1: the only difference was the fixed testcase.
Ok for branch and trunk (where the same fix applies, modulo the removal of
the bits subdirectory)?
Rainer
Sat Jul 13 02:15:14 2002 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/os/solaris/solaris2.5/bits/ctype_base.h (ctype_base):
Fix.
Index: libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/config/os/solaris/solaris2.5/bits/Attic/ctype_base.h,v
retrieving revision 1.2
diff -u -p -r1.2 ctype_base.h
--- libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h 14 Dec 2000 07:20:36 -0000 1.2
+++ libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h 13 Jul 2002 00:32:03 -0000
@@ -47,7 +47,7 @@
static const mask digit = 04;
static const mask xdigit = 0200;
static const mask space = 010;
- static const mask print = 020 | 01 | 02 | 04 | 0200;
+ static const mask print = 020 | 01 | 02 | 04 | 0100;
static const mask graph = 020 | 01 | 02 | 04;
static const mask cntrl = 040;
static const mask punct = 020;