From: Benjamin Kosnik Date: Mon, 27 May 2002 11:42:59 +0000 (+0000) Subject: re PR libstdc++/6795 (stringbuf failure) X-Git-Tag: releases/gcc-3.3.0~4785 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bed1bd8c51498ff087a18eb0bbc4cd35122f719f;p=thirdparty%2Fgcc.git re PR libstdc++/6795 (stringbuf failure) 2002-05-27 Benjamin Kosnik PR libstdc++/6795. * config/os/solaris/solaris2.6/bits/ctype_noninline.h (classic_table): Fix. * config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same. 2002-05-27 Benjamin Kosnik * testsuite/22_locale/ctype_is_wchar_t.cc: Guard with _GLIBCPP_USE_WCHAR_T. * testsuite/22_locale/ctype_narrow_wchar_t.cc: Same. * testsuite/22_locale/ctype_to_wchar_t.cc: Same. * testsuite/22_locale/ctype_widen_wchar_t.cc: Same. From-SVN: r53921 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 233734efb946..ac445d5ce094 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,18 @@ +2002-05-27 Benjamin Kosnik + + PR libstdc++/6795. + * config/os/solaris/solaris2.6/bits/ctype_noninline.h + (classic_table): Fix. + * config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same. + +2002-05-27 Benjamin Kosnik + + * testsuite/22_locale/ctype_is_wchar_t.cc: Guard with + _GLIBCPP_USE_WCHAR_T. + * testsuite/22_locale/ctype_narrow_wchar_t.cc: Same. + * testsuite/22_locale/ctype_to_wchar_t.cc: Same. + * testsuite/22_locale/ctype_widen_wchar_t.cc: Same. + 2002-05-26 Carlo Wood Paolo Carlini diff --git a/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h b/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h index f466afbc1cee..a3c27b06b87d 100644 --- a/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h +++ b/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h @@ -35,7 +35,7 @@ const ctype_base::mask* ctype::classic_table() throw() - { return 0; } + { return __ctype; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff --git a/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h b/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h index b22ad9a13743..f65cfe70f79f 100644 --- a/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h +++ b/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h @@ -35,7 +35,7 @@ const ctype_base::mask* ctype::classic_table() throw() - { return 0; } + { return __ctype_mask; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff --git a/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc index 9e6271dd4dab..50aa0dcdf1a6 100644 --- a/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc +++ b/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc @@ -34,6 +34,7 @@ // XXX This test (test02) is not working for non-glibc locale models. // { dg-do run { xfail *-*-* } } +#ifdef _GLIBCPP_USE_WCHAR_T typedef wchar_t char_type; class gnu_ctype: public std::ctype { }; @@ -183,11 +184,14 @@ void test05() VERIFY( preLANG == postLANG ); } } +#endif int main() { +#ifdef _GLIBCPP_USE_WCHAR_T test01(); test04(); test05(); +#endif return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc index 95946a760342..18745b9e3a47 100644 --- a/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc +++ b/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc @@ -33,6 +33,7 @@ #include #include +#ifdef _GLIBCPP_USE_WCHAR_T // libstdc++/6701 void test01() { @@ -94,10 +95,13 @@ void test02() for (int i = 0; i < wide.length(); ++i) VERIFY( narrow_chars[i] == narrow[i] ); } +#endif int main() { +#ifdef _GLIBCPP_USE_WCHAR_T test01(); test02(); - return 0; +#endif + return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc index ccc3d87dea09..70ca529826e7 100644 --- a/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc +++ b/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc @@ -30,6 +30,7 @@ #include #include +#ifdef _GLIBCPP_USE_WCHAR_T typedef wchar_t char_type; class gnu_ctype: public std::ctype { }; @@ -130,11 +131,14 @@ void test05() VERIFY( preLANG == postLANG ); } } +#endif int main() { +#ifdef _GLIBCPP_USE_WCHAR_T test01(); test04(); test05(); +#endif return 0; } diff --git a/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc index f089a06e3edd..d07a58d2201f 100644 --- a/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc +++ b/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc @@ -33,6 +33,7 @@ #include #include +#ifdef _GLIBCPP_USE_WCHAR_T void test01() { using namespace std; @@ -59,9 +60,12 @@ void test01() for (int i = 0; i < narrow.length(); ++i) VERIFY( wide_chars[i] == wide[i] ); } +#endif int main() { +#ifdef _GLIBCPP_USE_WCHAR_T test01(); +#endif return 0; }