diff --git a/libstdc++-v3/config/locale/ieee_1003.1-2008/ctype_members.cc b/libstdc++-v3/config/locale/ieee_1003.1-2008/ctype_members.cc --- a/libstdc++-v3/config/locale/ieee_1003.1-2008/ctype_members.cc +++ b/libstdc++-v3/config/locale/ieee_1003.1-2008/ctype_members.cc @@ -196,7 +196,7 @@ namespace std _GLIBCXX_VISIBILITY(defaul do_is(mask __m, char_type __c) const { bool __ret = false; - const size_t __bitmasksize = 11; + const size_t __bitmasksize = 15; #ifndef _GLIBCXX_HAVE_ISWCTYPE_L __c_locale __old = uselocale((locale_t)_M_c_locale_ctype); #endif @@ -227,7 +227,7 @@ namespace std _GLIBCXX_VISIBILITY(defaul #endif for (;__lo < __hi; ++__vec, ++__lo) { - const size_t __bitmasksize = 11; + const size_t __bitmasksize = 15; mask __m = 0; for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) #ifdef _GLIBCXX_HAVE_ISWCTYPE_L @@ -345,7 +345,7 @@ namespace std _GLIBCXX_VISIBILITY(defaul __j < sizeof(_M_widen) / sizeof(wint_t); ++__j) _M_widen[__j] = btowc(__j); - for (size_t __k = 0; __k <= 11; ++__k) + for (size_t __k = 0; __k <= 15; ++__k) { _M_bit[__k] = static_cast(_ISbit(__k)); _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); diff --git a/libstdc++-v3/config/locale/ieee_1003.1-2008/monetary_members.cc b/libstdc++-v3/config/locale/ieee_1003.1-2008/monetary_members.cc --- a/libstdc++-v3/config/locale/ieee_1003.1-2008/monetary_members.cc +++ b/libstdc++-v3/config/locale/ieee_1003.1-2008/monetary_members.cc @@ -29,6 +29,8 @@ // Written by Benjamin Kosnik // Modified for DragonFly by John Marino +// Solaris 11.4 doesn't make C99 members of struct lconv visible for C++11 +// without this. #include #include