diff --git a/libstdc++-v3/config/os/solaris/ctype_configure_char.cc b/libstdc++-v3/config/os/solaris/ctype_configure_char.cc --- a/libstdc++-v3/config/os/solaris/ctype_configure_char.cc +++ b/libstdc++-v3/config/os/solaris/ctype_configure_char.cc @@ -42,27 +42,27 @@ namespace std _GLIBCXX_VISIBILITY(defaul ctype::classic_table() throw() { return __ctype_mask; } - ctype::ctype(__c_locale, const mask* __table, bool __del, + ctype::ctype(__c_locale __cloc, const mask* __table, bool __del, size_t __refs) - : facet(__refs), _M_del(__table != 0 && __del), + : facet(__refs), _M_c_locale_ctype(_S_clone_c_locale(__cloc)), + _M_del(__table != 0 && __del), _M_toupper(__trans_upper), _M_tolower(__trans_lower), - _M_table(__table ? __table : classic_table()) + _M_table(__table ? __table : classic_table()), + _M_widen_ok(0), _M_narrow_ok(0) { memset(_M_widen, 0, sizeof(_M_widen)); - _M_widen_ok = 0; memset(_M_narrow, 0, sizeof(_M_narrow)); - _M_narrow_ok = 0; } ctype::ctype(const mask* __table, bool __del, size_t __refs) - : facet(__refs), _M_del(__table != 0 && __del), + : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), + _M_del(__table != 0 && __del), _M_toupper(__trans_upper), _M_tolower(__trans_lower), - _M_table(__table ? __table : classic_table()) + _M_table(__table ? __table : classic_table()), + _M_widen_ok(0), _M_narrow_ok(0) { memset(_M_widen, 0, sizeof(_M_widen)); - _M_widen_ok = 0; memset(_M_narrow, 0, sizeof(_M_narrow)); - _M_narrow_ok = 0; } char