diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2002-05-27 11:42:59 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2002-05-27 11:42:59 +0000 |
commit | bed1bd8c51498ff087a18eb0bbc4cd35122f719f (patch) | |
tree | 9a1e611ee5c2e887039d13ae7a028b98dd253ba7 | |
parent | 5149f0701c126f74f3cccf53b14175374fe3a7e9 (diff) | |
download | gcc-bed1bd8c51498ff087a18eb0bbc4cd35122f719f.zip gcc-bed1bd8c51498ff087a18eb0bbc4cd35122f719f.tar.gz gcc-bed1bd8c51498ff087a18eb0bbc4cd35122f719f.tar.bz2 |
re PR libstdc++/6795 (stringbuf failure)
2002-05-27 Benjamin Kosnik <bkoz@redhat.com>
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 <bkoz@redhat.com>
* 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
7 files changed, 34 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 233734e..ac445d5 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,18 @@ +2002-05-27 Benjamin Kosnik <bkoz@redhat.com> + + 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 <bkoz@redhat.com> + + * 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 <carlo@alinoe.com> Paolo Carlini <pcarlini@unitus.it> 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 f466afb..a3c27b0 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<char>::classic_table() throw() - { return 0; } + { return __ctype; } ctype<char>::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 b22ad9a..f65cfe7 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<char>::classic_table() throw() - { return 0; } + { return __ctype_mask; } ctype<char>::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 9e6271d..50aa0dc 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<char_type> { }; @@ -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 95946a7..18745b9 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 <vector> #include <testsuite_hooks.h> +#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 ccc3d87..70ca529 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 <locale> #include <testsuite_hooks.h> +#ifdef _GLIBCPP_USE_WCHAR_T typedef wchar_t char_type; class gnu_ctype: public std::ctype<char_type> { }; @@ -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 f089a06..d07a58d 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 <vector> #include <testsuite_hooks.h> +#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; } |