llvm-project/libcxx/include
Peter Collingbourne acd1f4e738 Condition usage of locale stdlib functions on Android API version
Some *_l functions were not available in some versions of Bionic. This CL
checks that the NDK version supports the functions, and if not, falls back
on the corresponding functions that don't take a locale.

Patch by Tom Anderson!

Differential Revision: https://reviews.llvm.org/D46558

llvm-svn: 332543
2018-05-16 22:40:12 +00:00
..
experimental Allow copy elision in path concatenation 2018-05-09 18:57:17 +00:00
ext Remove usages of _LIBCPP_MSVC which is never defined 2017-05-10 21:40:58 +00:00
support Condition usage of locale stdlib functions on Android API version 2018-05-16 22:40:12 +00:00
CMakeLists.txt Revert "[CMake] Use custom command and target to install libc++ headers" 2018-04-09 04:36:04 +00:00
__bit_reference [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__bsd_locale_defaults.h Add system header pragma to BSD locale fallback headers. 2017-08-03 02:50:43 +00:00
__bsd_locale_fallbacks.h Add system header pragma to BSD locale fallback headers. 2017-08-03 02:50:43 +00:00
__config Don't do aligned allocations on MSVCRT before 19.12 (update 15.3) 2018-04-19 22:12:10 +00:00
__config_site.in [cmake] Add a config option LIBCXX_HAS_WIN32_THREAD_API for enforcing win32 threads 2018-01-05 20:48:29 +00:00
__debug [libc++] Introduce _LIBCPP_EXTERN_VIS to fix __libcpp_debug_function link errors 2017-01-16 21:01:00 +00:00
__functional_03 [libcxx] func.wrap.func.con: Unset function before destroying anything 2018-04-25 23:38:41 +00:00
__functional_base Un-inline a few more variables that are exported from the dylib. 2018-01-02 19:01:45 +00:00
__functional_base_03
__hash_table Revert "Make rehash(0) work with ubsan's unsigned-integer-overflow." 2018-01-08 22:57:12 +00:00
__libcpp_version Update version to 7.0.0svn: cmake, include files and docs 2018-01-03 15:40:29 +00:00
__locale support: add missing locale stubs for android L, M 2018-04-13 18:14:57 +00:00
__mutex_base One more (should be) inline variable that is defined in the dylib 2018-01-02 19:23:30 +00:00
__nullptr [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
__split_buffer [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__sso_allocator Fix PR22634 - std::allocator doesn't respect over-aligned types. 2018-03-22 04:42:56 +00:00
__std_stream [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__string Fix misleading indentation; replace a couple of NULLs with nullptr. Resolves https://reviews.llvm.org/D42945 ; thanks to Bruce Mitchener for the patch. 2018-02-06 18:58:05 +00:00
__threading_support libcxx: Unbreak external thread library configuration. 2018-02-21 21:36:18 +00:00
__tree Spelling 2017-08-18 12:57:36 +00:00
__tuple Cleanup remaining usages of _LIBCPP_HAS_NO_<c++11-feature> in tuple and utility 2017-04-19 01:23:39 +00:00
__undef_macros [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
algorithm Fix misleading indentation; replace a couple of NULLs with nullptr. Resolves https://reviews.llvm.org/D42945 ; thanks to Bruce Mitchener for the patch. 2018-02-06 18:58:05 +00:00
any Implement part of LWG#2857 - any/optional. Still to do - variant. Reviewed as https://reviews.llvm.org/D31956 2017-04-12 22:51:27 +00:00
array Fix size and alignment of array<T, 0>. 2018-02-07 23:50:25 +00:00
atomic Emit an error when include <atomic> after <stdatomic.h> 2018-05-15 22:38:31 +00:00
bitset Fix problems with r'890 when building on machines where sizeof(size_t) != sizeof(unsigned long long) and C++03 2017-11-27 22:27:22 +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
cfenv
cfloat
chrono Implement most of P0607: Inline Variables for the Standard Library. This involved marking a lot of variables as inline (but only for C++17 and later). 2018-01-02 17:17:01 +00:00
cinttypes
ciso646
climits
clocale
cmath cmath: Support clang's -fdelayed-template-parsing 2017-07-07 05:13:36 +00:00
codecvt [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
compare Use void() to create a void expression type 2018-04-07 04:28:11 +00:00
complex [libcxx] Improve accuracy of complex asinh and acosh 2018-02-19 15:41:36 +00:00
complex.h
condition_variable [libc++] Make _LIBCPP_TYPE_VIS export members 2017-03-02 03:22:18 +00:00
csetjmp
csignal
cstdarg
cstdbool
cstddef Implement LWG2950: std::byte operations are misspecified 2017-11-14 01:14:53 +00:00
cstdint
cstdio [libc++] Drop support for CRTs older than VS 2015 2017-04-07 02:20:52 +00:00
cstdlib [libc++] Respect Windows Store app CRT restrictions 2017-04-06 04:47:49 +00:00
cstring Fix overload sets of strchr, strpbrk, strrchr, memchr and strstr from 2016-02-10 00:59:02 +00:00
ctgmath
ctime
ctype.h [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
cwchar [libc++] Remove unnecessary MSVCRT exclusions 2016-11-08 03:31:42 +00:00
cwctype
deque First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only 2017-11-15 05:51:26 +00:00
errno.h
exception [libc++] Support Microsoft ABI without vcruntime headers 2017-10-09 19:25:17 +00:00
float.h
forward_list First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only 2017-11-15 05:51:26 +00:00
fstream libcxx: Provide overloads for basic_filebuf::open() et al that take wchar_t* filenames on Windows. 2018-01-23 02:07:27 +00:00
functional [libcxx] func.wrap.func.con: Unset function before destroying anything 2018-04-25 23:38:41 +00:00
future Implement LWG 3039 and 3041 - 'Treating Unnecessary decay'. 2018-03-20 22:37:37 +00:00
initializer_list Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros for std::initializer_list 2017-04-18 23:09:36 +00:00
inttypes.h [include] Declare __STDC_*_MACROS for C++11 compat in old libc 2016-09-26 20:20:00 +00:00
iomanip Move 'quoted' for string_view from <string_view> to <iomanip> (where the other versions of 'quoted' live. No functional change. 2016-10-27 15:10:07 +00:00
ios Fix incorrect indentation. 2018-02-14 00:29:38 +00:00
iosfwd [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
iostream
istream [libcxx] Make std::basic_istream::get 0-terminate input array in case of error. 2018-01-11 23:23:49 +00:00
iterator [libcxx] Define istream_iterator equality comparison operators out-of-line 2017-12-11 13:54:58 +00:00
limits Fix more unreserved names 2017-06-01 02:29:37 +00:00
limits.h [libcxx] Fix gcc build. 2016-10-10 15:56:01 +00:00
list Fix PR35564 - std::list splice/erase incorrectly throw in debug mode. 2018-01-25 00:02:48 +00:00
locale Fix PR36914 - num_get::get(unsigned) incorrectly handles negative numbers. 2018-03-29 01:18:53 +00:00
locale.h [libcxx] Implement locale.h to fix modules build 2016-11-19 01:14:15 +00:00
map Use multi-key tree search for {map, set}::{count, equal_range} 2018-02-10 02:53:47 +00:00
math.h Fix return type of isinf(double) and isnan(double) where possible. 2018-05-01 03:05:40 +00:00
memory Fix PR22634 - std::allocator doesn't respect over-aligned types. 2018-03-22 04:42:56 +00:00
module.modulemap Re-commit r330627 "[libcxx] implement <experimental/simd> declarations based on P0214R7." 2018-04-23 21:54:06 +00:00
mutex Implement most of P0607: Inline Variables for the Standard Library. This involved marking a lot of variables as inline (but only for C++17 and later). 2018-01-02 17:17:01 +00:00
new Fix PR22634 - std::allocator doesn't respect over-aligned types. 2018-03-22 04:42:56 +00:00
numeric Fix incorrect handling of move-only types in transform_reduce iter iter iter init, and add test. 2018-01-05 01:31:57 +00:00
optional Implement P0777: Treating unnecessay decay 2018-02-06 20:56:55 +00:00
ostream Fix improperly failing test - and the code it was testing. Thanks to Stephan Lavavej for the catch. 2018-03-22 18:27:28 +00:00
queue Implement LWG2783: stack::emplace() and queue::emplace() should return decltype(auto) 2018-01-24 22:42:25 +00:00
random Change an internal table of constants for the poisson distribution from 2018-01-16 14:54:36 +00:00
ratio Implement most of P0607: Inline Variables for the Standard Library. This involved marking a lot of variables as inline (but only for C++17 and later). 2018-01-02 17:17:01 +00:00
regex [libcxx] Correctly handle invalid regex character class names 2018-01-24 12:45:18 +00:00
scoped_allocator More of P0600; marking allocation routines as [[nodiscard]] 2017-11-26 02:55:38 +00:00
set Use multi-key tree search for {map, set}::{count, equal_range} 2018-02-10 02:53:47 +00:00
setjmp.h
shared_mutex [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
sstream libcxx: Fix for basic_stringbuf::seekoff() after r320604. 2017-12-19 23:33:16 +00:00
stack Implement LWG2783: stack::emplace() and queue::emplace() should return decltype(auto) 2018-01-24 22:42:25 +00:00
stdbool.h Add stdbool.h wrapper for libc++ 2016-02-20 00:16:41 +00:00
stddef.h Check for musl-libc's max_align_t in addition to other variants. 2017-02-10 01:27:42 +00:00
stdexcept Fix more unreserved names 2017-06-01 02:29:37 +00:00
stdint.h [include] Declare __STDC_*_MACROS for C++11 compat in old libc 2016-09-26 20:20:00 +00:00
stdio.h libcxx: Rename vasprintf function to __libcpp_vasprintf. 2018-01-23 18:53:33 +00:00
stdlib.h [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
streambuf Add static_asserts to basic_ios and basic_stream_buf to ensure that that the traits match the character type. This is a requirement on the user - now we get consistent failures at compile time instead of incomprehensible error messages or runtime failures. This is also LWG#2994 - not yet adopted. 2018-02-01 03:55:27 +00:00
string Implement LWG3034: P0767R1 breaks previously-standard-layout types 2018-03-21 00:36:05 +00:00
string.h Instead of asking glibc to provide correct C++ signatures for <string.h> 2016-02-11 23:51:02 +00:00
string_view Implement LWG3034: P0767R1 breaks previously-standard-layout types 2018-03-21 00:36:05 +00:00
strstream Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the input.output library 2017-04-18 23:38:41 +00:00
system_error Implement most of P0607: Inline Variables for the Standard Library. This involved marking a lot of variables as inline (but only for C++17 and later). 2018-01-02 17:17:01 +00:00
tgmath.h Implement LWG 2835 - fix <tgmath.h> 2018-02-12 19:13:24 +00:00
thread Implement LWG 3039 and 3041 - 'Treating Unnecessary decay'. 2018-03-20 22:37:37 +00:00
tuple Implement P0777: Treating unnecessay decay 2018-02-06 20:56:55 +00:00
type_traits Fix PR37407 - callable traits don't correctly check complete types. 2018-05-10 20:59:35 +00:00
typeindex [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
typeinfo libcxx: Use vcruntime declarations for typeinfo on Windows. 2018-01-26 01:22:17 +00:00
unordered_map First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only 2017-11-15 05:51:26 +00:00
unordered_set First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only 2017-11-15 05:51:26 +00:00
utility Fix a typo in the synopsis comment. NFC. Thanks to K-ballo for the catch 2018-02-11 21:51:49 +00:00
valarray Fix PR22634 - std::allocator doesn't respect over-aligned types. 2018-03-22 04:42:56 +00:00
variant Partially Revert "Workaround GCC bug PR78489 - SFINAE order is not respected." 2018-03-23 23:42:30 +00:00
vector First part of P0600 - '[[nodiscard] in the standard library'. Mark the 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only 2017-11-15 05:51:26 +00:00
version Implement P0754R2: The <version> header. 2018-04-03 15:48:24 +00:00
wchar.h [libc++] Account for Microsoft CRT const overloads 2017-09-15 18:49:34 +00:00
wctype.h