llvm-project/libcxx/include
Ben Craig 57b8b1f75f Reorganize locale extension fallbacks. NFCI
The various _l locale extension functions originate from very
different places.  Some come from POSIX, some are BSD extensions,
and some are shared BSD and GLIBC extensions. This patch tries to
group the local extension reimplementations by source. This should
make it easier to make libcxx work with POSIX compliant C libraries
that lack these extensions.

The fallback locale functions are also useful on their own for other
lightweight platforms. Putting these fallback implementations in
support/xlocale should enable code sharing.

I have no access to a newlib system or an android system to build
and test with. I _do_ have access to a system without any of the _l
locale extensions though, and I was able to ensure that the new
__posix_l_fallback.h and __strtonum_fallback.h didn't have any massive
problems.

http://reviews.llvm.org/D17416

llvm-svn: 270213
2016-05-20 12:58:41 +00:00
..
experimental Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
ext Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
support Reorganize locale extension fallbacks. NFCI 2016-05-20 12:58:41 +00:00
CMakeLists.txt [CMake] Fix a copy-paste error 2016-05-03 16:54:20 +00:00
__bit_reference Get tests running with warnings. Fix warnings in headers and tests 2015-02-05 20:28:37 +00:00
__bsd_locale_defaults.h Reorganize _LIBCPP_LOCALE__L_EXTENSIONS 2016-03-09 15:39:39 +00:00
__bsd_locale_fallbacks.h Reorganize _LIBCPP_LOCALE__L_EXTENSIONS 2016-03-09 15:39:39 +00:00
__config Enable Pthread threading API on Solaris. Fix PR27677 2016-05-07 17:05:46 +00:00
__config_site.in Add initial support for the MUSL C library. 2015-11-09 10:21:04 +00:00
__debug Print log/error messages on stderr, not stdout 2015-03-10 07:57:43 +00:00
__functional_03 [libcxx] Fix PR23589: std::function doesn't recognize null pointer to varargs function. 2015-08-18 19:41:51 +00:00
__functional_base Fix most GCC attribute ignored warnings 2016-04-21 22:54:21 +00:00
__functional_base_03 [libcxx] Rewrite C++03 __invoke. 2015-08-26 20:15:02 +00:00
__hash_table Teach map/unordered_map how to optimize 'emplace(Key, T)'. 2016-04-16 00:23:12 +00:00
__locale Use libcxx's default rune table with the Musl C library. 2015-11-24 10:24:54 +00:00
__mutex_base Refactor pthread usage of libcxx. 2016-05-06 14:06:29 +00:00
__nullptr Factor definition of std::nullptr_t out of <cstddef> into a header that can also be used by <stddef.h>. 2015-10-08 20:34:11 +00:00
__refstring Fix some -Wundef issues. 2015-02-05 02:34:59 +00:00
__split_buffer Cleanup: move visibility/linkage attributes to the first declaration. 2015-11-07 01:22:13 +00:00
__sso_allocator Handle function name conflicts in _LIBCPP_MSVCRT mode 2015-02-13 22:15:32 +00:00
__std_stream Enable and fix warnings during the build. 2015-07-18 20:40:46 +00:00
__threading_support Refactor pthread usage of libcxx. 2016-05-06 14:06:29 +00:00
__tree Teach map/unordered_map how to optimize 'emplace(Key, T)'. 2016-04-16 00:23:12 +00:00
__tuple Extract key to avoid preemptive mallocs in insert/emplace in associative containers 2016-04-15 23:27:27 +00:00
__undef___deallocate Handle function name conflicts in _LIBCPP_MSVCRT mode 2015-02-13 22:15:32 +00:00
__undef_min_max Fix-it suggestion for fixing min or max defines on Windows. 2013-11-15 23:41:01 +00:00
algorithm Add is_swappable/is_nothrow_swappable traits 2016-04-21 23:38:59 +00:00
array Add is_swappable/is_nothrow_swappable traits 2016-04-21 23:38:59 +00:00
atomic [libcxx] [test] Replace non-Standard "atomic_flag f(false);" with Standard "atomic_flag f;" 2016-05-03 02:12:26 +00:00
bitset Fix most GCC attribute ignored warnings 2016-04-21 22:54:21 +00:00
cassert
ccomplex
cctype Put back the undefs that Richard removed. Boost won't build w/o these; specifically the file 'bytes_methods.h' in Apple's python framework defines these. 2016-04-04 22:49:20 +00:00
cerrno Split <errno.h> out of <cerrno>. 2015-10-08 20:37:11 +00:00
cfenv Fix incorrect file header. This is <cfenv> not <cctype>. 2015-10-08 21:17:21 +00:00
cfloat Split <float.h> out of <cfloat>. 2015-10-08 20:37:44 +00:00
chrono Last bit of P0006; mark it as complete 2015-11-30 05:39:30 +00:00
cinttypes Split <inttypes.h> out of <cinttypes>. 2015-10-08 20:38:53 +00:00
ciso646
climits
clocale Make support for thread-unsafe C functions optional. 2015-06-24 08:44:38 +00:00
cmath Implement P0030R1: Introduce a 3-Argument Overload to std::hypot 2016-05-17 14:52:19 +00:00
codecvt Update synopsis in <locale> to match LWG Issue 2229. No code change 2013-08-27 14:22:13 +00:00
complex Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
complex.h PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
condition_variable Cleanup: move visibility/linkage attributes to the first declaration. 2015-11-07 01:22:13 +00:00
csetjmp Split <setjmp.h> out of <csetjmp>. 2015-10-08 20:41:26 +00:00
csignal
cstdarg
cstdbool
cstddef PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
cstdint
cstdio Split <stdio.h> out of <cstdio>. 2015-10-09 01:29:09 +00:00
cstdlib Split <stdlib.h> out of <cstdlib>. 2015-10-09 01:41:45 +00:00
cstring Fix overload sets of strchr, strpbrk, strrchr, memchr and strstr from 2016-02-10 00:59:02 +00:00
ctgmath
ctime Make support for thread-unsafe C functions optional. 2015-06-24 08:44:38 +00:00
ctype.h PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
cwchar Fix overload sets of strchr, strpbrk, strrchr, memchr and strstr from 2016-02-10 00:59:02 +00:00
cwctype Split <wctype.h> out of <cwctype>. 2015-10-09 19:57:37 +00:00
deque Add static_assert to set/multiset/map/multimap/forward_list/deque that the allocator's value_type match the container's value_type. vector/unordered/list/string already do this. Add tests for all the containers to verify this. 2015-11-26 01:24:04 +00:00
errno.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
exception Fix typo it _LIBCPP_NO_EXCEPTIONS macro 2016-05-07 02:30:21 +00:00
float.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
forward_list Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
fstream Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
functional Add hash specializations for __int128_t. Fixes LWG issue 2119 2016-04-18 02:54:00 +00:00
future Add a couple of _LIBCPP_ASSERT calls. No functional change. 2016-05-16 16:55:32 +00:00
initializer_list Apply constexpr to initializer_list for c++1y. 2013-08-26 20:11:32 +00:00
inttypes.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
iomanip Implement LWG #2344: quoted()'s interaction with padding is unclear. I think that anyone using quoted with padding is really confused, but it should work the way the rest of iostreams works. 2014-03-07 21:45:32 +00:00
ios Make ios_base::failure visibility specified consistent 2016-04-21 23:00:33 +00:00
iosfwd Make __wrap_iter work with GCC again 2016-02-20 00:19:45 +00:00
iostream Make the presence of stdin and stdout optional. 2015-03-26 14:35:46 +00:00
istream Revert "Remove visibility attributes from out-of-class method definitions in iostreams." 2016-01-08 19:21:02 +00:00
iterator Implement LWG2576: istream_iterator and ostream_iterator should use std::addressof 2016-05-17 17:44:40 +00:00
limits [WebAssembly] Set std::numeric_limits's traps field for WebAssembly. 2016-01-13 16:32:00 +00:00
list Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
locale Fix PR21428 for long. Buffer was one byte too small in octal formatting case. Rename previously added test 2016-04-29 07:23:20 +00:00
map Add is_swappable/is_nothrow_swappable traits 2016-04-21 23:38:59 +00:00
math.h PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
memory Change the control flow in atomic_compare_exchange_strong to avoid a potential deadlock. 2016-05-18 17:50:13 +00:00
module.modulemap Remove __config module to avoid #include cycle when libc headers include libc++'s <foo.h> headers. 2015-10-13 22:13:33 +00:00
mutex Refactor pthread usage of libcxx. 2016-05-06 14:06:29 +00:00
new [libcxx] Rework sized delete. 2015-05-19 02:03:22 +00:00
numeric [libcxx] Fix use of operator comma where the types can be user defined 2014-10-27 19:28:20 +00:00
ostream Revert "Remove visibility attributes from out-of-class method definitions in iostreams." 2016-01-08 19:21:02 +00:00
queue Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
random Cleanup: move visibility/linkage attributes to the first declaration. 2015-11-07 01:22:13 +00:00
ratio Missing file from last commit 2015-11-30 05:04:48 +00:00
regex [libcxx] Fix definition of regex_traits::__regex_word on big-endian glibc systems 2016-02-17 13:16:31 +00:00
scoped_allocator Fix LWG#2476: scoped_allocator_adaptor is not assignable 2015-10-25 19:52:47 +00:00
set Add static_assert to set/multiset/map/multimap/forward_list/deque that the allocator's value_type match the container's value_type. vector/unordered/list/string already do this. Add tests for all the containers to verify this. 2015-11-26 01:24:04 +00:00
setjmp.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
shared_mutex Qualify calls to addressof to avoid getting ADL. Fixes PR#27254. 2016-04-13 17:02:23 +00:00
sstream Revert "Remove visibility attributes from out-of-class method definitions in iostreams." 2016-01-08 19:21:02 +00:00
stack Add is_swappable/is_nothrow_swappable traits 2016-04-21 23:38:59 +00:00
stdbool.h Add stdbool.h wrapper for libc++ 2016-02-20 00:16:41 +00:00
stddef.h PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
stdexcept Fix most GCC attribute ignored warnings 2016-04-21 22:54:21 +00:00
stdio.h Split <stdio.h> out of <cstdio>. 2015-10-09 01:29:09 +00:00
stdlib.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
streambuf Revert "Remove visibility attributes from out-of-class method definitions in iostreams." 2016-01-08 19:21:02 +00:00
string Fix most GCC attribute ignored warnings 2016-04-21 22:54:21 +00:00
string.h Instead of asking glibc to provide correct C++ signatures for <string.h> 2016-02-11 23:51:02 +00:00
strstream
system_error Fix most GCC warnings during build. Only -Wattribute left. 2015-08-28 07:02:42 +00:00
tgmath.h
thread Refactor pthread usage of libcxx. 2016-05-06 14:06:29 +00:00
tuple Make tuples constructors conditionally EXPLICIT. See N4387 2016-04-19 01:19:25 +00:00
type_traits Cleanup superfluous std:: qualifiers in <type_traits> 2016-05-18 23:09:24 +00:00
typeindex Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. 2013-08-12 18:38:34 +00:00
typeinfo RTTI Uniqueness: remove __name_for_load function. 2014-04-03 09:12:38 +00:00
unordered_map Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
unordered_set Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
utility Add is_swappable/is_nothrow_swappable traits 2016-04-21 23:38:59 +00:00
valarray Mark declarations of externally instantiated functions as inline so GCC doesn't complain. 2015-12-15 01:41:41 +00:00
vector Fix bug #27260 - add missing swap(reference, reference) to vector<bool>. 2016-04-07 14:20:31 +00:00
wchar.h Fix overload sets of strchr, strpbrk, strrchr, memchr and strstr from 2016-02-10 00:59:02 +00:00
wctype.h Split <wctype.h> out of <cwctype>. 2015-10-09 19:57:37 +00:00