From bed1bd8c51498ff087a18eb0bbc4cd35122f719f Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Mon, 27 May 2002 11:42:59 +0000 Subject: [PATCH] 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 --- libstdc++-v3/ChangeLog | 15 +++++++++++++++ .../os/solaris/solaris2.5/bits/ctype_noninline.h | 2 +- .../os/solaris/solaris2.6/bits/ctype_noninline.h | 2 +- .../testsuite/22_locale/ctype_is_wchar_t.cc | 4 ++++ .../testsuite/22_locale/ctype_narrow_wchar_t.cc | 6 +++++- .../testsuite/22_locale/ctype_to_wchar_t.cc | 4 ++++ .../testsuite/22_locale/ctype_widen_wchar_t.cc | 4 ++++ 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 233734efb94..ac445d5ce09 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 f466afbc1ce..a3c27b06b87 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 b22ad9a1374..f65cfe70f79 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 9e6271dd4da..50aa0dcdf1a 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 95946a76034..18745b9e3a4 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 ccc3d87dea0..70ca529826e 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 f089a06e3ed..d07a58d2201 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; }