aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/src
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2001-12-12 23:16:35 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2001-12-12 23:16:35 +0000
commit9e5c7dba50d3ad60d6920b76c1e20e0e401927e6 (patch)
tree730003a3ac41256c22a9fa2ccf2908348ac6572c /libstdc++-v3/src
parent63de15a4b4f6f9e9422f21289ebe12a06c8fe30a (diff)
downloadgcc-9e5c7dba50d3ad60d6920b76c1e20e0e401927e6.tar.gz
gcc-9e5c7dba50d3ad60d6920b76c1e20e0e401927e6.tar.bz2
gcc-9e5c7dba50d3ad60d6920b76c1e20e0e401927e6.zip
Named locale support for ctype<char>.
2001-12-12 Benjamin Kosnik <bkoz@redhat.com> Named locale support for ctype<char>. * config/locale/c_locale_gnu.h (_GLIBCPP_C_LOCALE_GNU): New. * config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>): Add definitions for alternate constructor. * config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same. * config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same. * config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same. * config/os/newlib/bits/ctype_noninline.h (ctype): Same. * config/os/irix/irix6.5/bits/ctype_noninline.h (ctype): Same. * config/os/irix/irix5.2/bits/ctype_noninline.h (ctype): Same. * config/os/hpux/bits/ctype_noninline.h (ctype): Same. * config/os/generic/bits/ctype_noninline.h (ctype): Same. * config/os/djgpp/bits/ctype_noninline.h (ctype): Same. * config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same. * config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same. * config/os/aix/bits/ctype_noninline.h (ctype): Same. * include/bits/locale_facets.h (ctype<_CharT>): Remove dummy definitions for all virtual functions. These are now explicitly undefined for non-required factets, ie any non-char, non-wchar_t instantiations. * src/localename.cc (locale::_Impl::_Impl(string, size_t): Named locales use alternate constructor for ctype facet. * include/bits/locale_facets.h (ctype<char>::ctype(__c_locale, const mask*, bool, size_t): Add. (ctype<wchar_t>::ctype(__c_locale, size_t): Add. * src/locale.cc (ctype<wchar_t>::ctype(__c_locale, size_t)): Add definition. * testsuite/22_locale/ctype_members_char.cc (test02): Add, mark XFAIL for non-gnu locale models. From-SVN: r47953
Diffstat (limited to 'libstdc++-v3/src')
-rw-r--r--libstdc++-v3/src/locale.cc7
-rw-r--r--libstdc++-v3/src/localename.cc4
2 files changed, 7 insertions, 4 deletions
diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc
index 14938d9d730..d827a256436 100644
--- a/libstdc++-v3/src/locale.cc
+++ b/libstdc++-v3/src/locale.cc
@@ -484,8 +484,11 @@ namespace std
// NB: These ctype<wchar_t> methods are not configuration-specific,
// unlike the ctype<char> bits.
- ctype<wchar_t>::ctype(size_t __refs) : __ctype_abstract_base<wchar_t>(__refs)
- { }
+ ctype<wchar_t>::ctype(size_t __refs)
+ : __ctype_abstract_base<wchar_t>(__refs) { }
+
+ ctype<wchar_t>::ctype(__c_locale /*__cloc*/, size_t __refs)
+ : __ctype_abstract_base<wchar_t>(__refs) { }
wchar_t
ctype<wchar_t>::do_toupper(wchar_t __c) const
diff --git a/libstdc++-v3/src/localename.cc b/libstdc++-v3/src/localename.cc
index 738acdef203..2bd34cd4ac8 100644
--- a/libstdc++-v3/src/localename.cc
+++ b/libstdc++-v3/src/localename.cc
@@ -92,7 +92,7 @@ namespace std
// Construct all standard facets and add them to _M_facets.
// XXX How to deal cleanly, consistently with null ("C") __cloc?
_M_init_facet(new std::collate<char>(__cloc));
- _M_init_facet(new std::ctype<char>);
+ _M_init_facet(new std::ctype<char>(__cloc));
_M_init_facet(new codecvt<char, char, mbstate_t>);
_M_init_facet(new moneypunct<char, false>(__cloc));
_M_init_facet(new moneypunct<char, true>(__cloc));
@@ -108,7 +108,7 @@ namespace std
#ifdef _GLIBCPP_USE_WCHAR_T
_M_init_facet(new std::collate<wchar_t>(__cloc));
- _M_init_facet(new std::ctype<wchar_t>);
+ _M_init_facet(new std::ctype<wchar_t>(__cloc));
_M_init_facet(new codecvt<wchar_t, char, mbstate_t>);
_M_init_facet(new moneypunct<wchar_t, false>(__cloc));
_M_init_facet(new moneypunct<wchar_t, true>(__cloc));