OLD | NEW |
1 //===------------------------- locale.cpp ---------------------------------===// | 1 //===------------------------- locale.cpp ---------------------------------===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is dual licensed under the MIT and the University of Illinois Open | 5 // This file is dual licensed under the MIT and the University of Illinois Open |
6 // Source Licenses. See LICENSE.TXT for details. | 6 // Source Licenses. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 | 9 |
10 // On Solaris, we need to define something to make the C99 parts of localeconv | 10 // On Solaris, we need to define something to make the C99 parts of localeconv |
(...skipping 1015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1026 #elif defined(__GLIBC__) | 1026 #elif defined(__GLIBC__) |
1027 return __cloc()->__ctype_b; | 1027 return __cloc()->__ctype_b; |
1028 #elif __sun__ | 1028 #elif __sun__ |
1029 return __ctype_mask; | 1029 return __ctype_mask; |
1030 #elif defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) | 1030 #elif defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) |
1031 return _ctype+1; // internal ctype mask table defined in msvcrt.dll | 1031 return _ctype+1; // internal ctype mask table defined in msvcrt.dll |
1032 // This is assumed to be safe, which is a nonsense assumption because we're | 1032 // This is assumed to be safe, which is a nonsense assumption because we're |
1033 // going to end up dereferencing it later... | 1033 // going to end up dereferencing it later... |
1034 #elif defined(__EMSCRIPTEN__) | 1034 #elif defined(__EMSCRIPTEN__) |
1035 return *__ctype_b_loc(); | 1035 return *__ctype_b_loc(); |
| 1036 #elif defined(_NEWLIB_VERSION) // @LOCALMOD-START |
| 1037 // Newlib has a 257-entry table in ctype_.c, where (char)0 starts at [1]. |
| 1038 return _ctype_ + 1; |
| 1039 // @LOCALMOD-END |
1036 #elif defined(_AIX) | 1040 #elif defined(_AIX) |
1037 return (const unsigned int *)__lc_ctype_ptr->obj->mask; | 1041 return (const unsigned int *)__lc_ctype_ptr->obj->mask; |
1038 #elif defined(__ANDROID__) | 1042 #elif defined(__ANDROID__) |
1039 return reinterpret_cast<const unsigned char*>(_ctype_) + 1; | 1043 return reinterpret_cast<const unsigned char*>(_ctype_) + 1; |
1040 #else | 1044 #else |
1041 // Platform not supported: abort so the person doing the port knows what to | 1045 // Platform not supported: abort so the person doing the port knows what to |
1042 // fix | 1046 // fix |
1043 # warning ctype<char>::classic_table() is not implemented | 1047 # warning ctype<char>::classic_table() is not implemented |
1044 printf("ctype<char>::classic_table() is not implemented\n"); | 1048 printf("ctype<char>::classic_table() is not implemented\n"); |
1045 abort(); | 1049 abort(); |
(...skipping 5114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6160 template class messages_byname<wchar_t>; | 6164 template class messages_byname<wchar_t>; |
6161 | 6165 |
6162 template class codecvt_byname<char, char, mbstate_t>; | 6166 template class codecvt_byname<char, char, mbstate_t>; |
6163 template class codecvt_byname<wchar_t, char, mbstate_t>; | 6167 template class codecvt_byname<wchar_t, char, mbstate_t>; |
6164 template class codecvt_byname<char16_t, char, mbstate_t>; | 6168 template class codecvt_byname<char16_t, char, mbstate_t>; |
6165 template class codecvt_byname<char32_t, char, mbstate_t>; | 6169 template class codecvt_byname<char32_t, char, mbstate_t>; |
6166 | 6170 |
6167 template class __vector_base_common<true>; | 6171 template class __vector_base_common<true>; |
6168 | 6172 |
6169 _LIBCPP_END_NAMESPACE_STD | 6173 _LIBCPP_END_NAMESPACE_STD |
OLD | NEW |