diff options
| -rw-r--r-- | libstdc++-v3/ChangeLog | 11 | ||||
| -rw-r--r-- | libstdc++-v3/config/locale/moneypunct_members_gnu.cc | 9 | ||||
| -rw-r--r-- | libstdc++-v3/config/locale/numpunct_members_gnu.cc | 4 |
3 files changed, 17 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 369477e..5f74c2d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2001-11-28 Benjamin Kosnik <bkoz@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + * config/locale/moneypunct_members_gnu.cc + (moneypunct<wchar_t>::_M_initialize_moneypunct): Correctly cast + for ia64, others. + * config/locale/numpunct_members_gnu.cc + (numpunct<wchar_t>::_M_initialize_numpunct): Same. + 2001-11-27 Benjamin Kosnik <bkoz@redhat.com> * include/bits/locale_facets.tcc: Formatting tweaks. @@ -440,7 +449,7 @@ * testsuite/21_strings/replace.cc (test02): Add test. * testsuite/21_strings/assign.cc (test01): New file. -001-10-30 Jakub Jelinek <jakub@redhat.com> +2001-10-30 Jakub Jelinek <jakub@redhat.com> * include/bits/stl_deque.h (_M_new_elements_at_front): Use __throw_exception_again. diff --git a/libstdc++-v3/config/locale/moneypunct_members_gnu.cc b/libstdc++-v3/config/locale/moneypunct_members_gnu.cc index 31662c2..88a4f95 100644 --- a/libstdc++-v3/config/locale/moneypunct_members_gnu.cc +++ b/libstdc++-v3/config/locale/moneypunct_members_gnu.cc @@ -319,8 +319,9 @@ namespace std else { // Named locale. - _M_decimal_point = reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)); - _M_thousands_sep = reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC,__cloc)); + _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); + + _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); mbstate_t __state; @@ -398,8 +399,8 @@ namespace std else { // Named locale. - _M_decimal_point = reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)); - _M_thousands_sep = reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC,__cloc)); + _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); + _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); mbstate_t __state; diff --git a/libstdc++-v3/config/locale/numpunct_members_gnu.cc b/libstdc++-v3/config/locale/numpunct_members_gnu.cc index 1ebad42..5a423b5 100644 --- a/libstdc++-v3/config/locale/numpunct_members_gnu.cc +++ b/libstdc++-v3/config/locale/numpunct_members_gnu.cc @@ -77,8 +77,8 @@ namespace std else { // Named locale. - _M_decimal_point = reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)); - _M_thousands_sep = reinterpret_cast<wchar_t>(__nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC,__cloc)); + _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); + _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); } // NB: There is no way to extact this info from posix locales. |
