llvm-project/libcxx/include
Kuba Brecka 224264ade0 [libcxx] Fix a data race in call_once
call_once is using relaxed atomic load to perform double-checked locking, which contains a data race. The fast-path load has to be an acquire atomic load.

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

llvm-svn: 280621
2016-09-04 09:55:12 +00:00
..
experimental Implement C++17 std::sample. 2016-08-28 22:14:37 +00:00
ext Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
support Implement LWG issue 1169. num_get not fully compatible with strto* 2016-06-19 06:58:22 +00:00
CMakeLists.txt [CMake] NFC. Fixing spelling from r280400 2016-09-01 19:46:02 +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 Define _LIBCPP_SAFE_STATIC __attribute__((require_constant_initialization)), and apply it to memory_resource 2016-09-03 00:11:33 +00:00
__config_site.in [libcxx] Allow explicit pthread opt-in 2016-05-25 17:40:09 +00:00
__debug Fix undefined behavior in __hash_table 2016-07-23 20:36:55 +00:00
__functional_03 Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +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 Skip chash computation in insert/emplace if the unconstrained hash matches. 2016-07-24 06:22:25 +00:00
__locale Add attribute noreturn to functions that throw 2016-08-27 02:26:42 +00:00
__mutex_base Don't use pthread initializers in constexpr constructors. Patch by elram. Reviewed at https://reviews.llvm.org/D21637. 2016-07-18 17:23:06 +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
__string Add a bunch of noexcepts to char_traits and string_view. 2016-07-28 04:52:02 +00:00
__threading_support [libcxx] Allow explicit pthread opt-in 2016-05-25 17:40:09 +00:00
__tree Avoid embedded preprocessor directives in __tree 2016-08-27 19:32:03 +00:00
__tuple Fix or suppress GCC warnings during build. 2016-08-29 20:43:38 +00:00
__undef___deallocate Add option to disable __deallocate #warning 2016-07-12 14:39:13 +00:00
__undef_min_max Add option to disable __deallocate #warning 2016-07-12 14:39:13 +00:00
algorithm Implement C++17 std::sample. 2016-08-28 22:14:37 +00:00
any Followon to r279744. Find the other exception types and make __throw_XXX routines (and call them). Remove the generic __libcpp_throw routine, since no one uses it anymore. 2016-08-25 17:47:09 +00:00
array Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
atomic Revert r276506 - Diagnose invalid memory order arguments in <atomic>. 2016-07-23 01:43:53 +00:00
bitset Avoid narrowing warnings in __bitset constructor 2016-09-02 21:02:11 +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 Fix PR28506. Re-enable missing math.h C++11 decls on SunOS. Patch from Michal Gorny. 2016-08-15 18:58:57 +00:00
codecvt
complex Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +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 cstdio: limit gets to CRT versions below 14 2016-09-01 21:09:19 +00:00
cstdlib Fix or suppress GCC warnings during build. 2016-08-29 20:43:38 +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 an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
errno.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
exception Followon to r279744. Find the other exception types and make __throw_XXX routines (and call them). Remove the generic __libcpp_throw routine, since no one uses it anymore. 2016-08-25 17:47:09 +00:00
float.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
forward_list Implement P0084r2. Changing emplace return types. 2016-07-21 03:20:17 +00:00
fstream Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
functional Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
future Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
initializer_list
inttypes.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
iomanip Implement std::string_view as described in http://wg21.link/P0254R1. Reviewed as https://reviews.llvm.org/D21459 2016-07-21 05:31:24 +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 Implement LWG2328. Rvalue stream extraction should perfect forward. 2016-07-24 04:07:22 +00:00
iterator std:: quailfy the calls for cend/crend/cbegin/cend. Fixes bug 28927. 2016-08-10 20:04:46 +00:00
limits [WebAssembly] Set std::numeric_limits's traps field for WebAssembly. 2016-01-13 16:32:00 +00:00
list Implement P0084r2. Changing emplace return types. 2016-07-21 03:20:17 +00:00
locale Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
map Support allocators with explicit conversion constructors. Fixes bug #29000 2016-08-17 05:58:40 +00:00
math.h Fix PR28506. Re-enable missing math.h C++11 decls on SunOS. Patch from Michal Gorny. 2016-08-15 18:58:57 +00:00
memory [libcxx] Fix a data race in call_once 2016-09-04 09:55:12 +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 [libcxx] Fix a data race in call_once 2016-09-04 09:55:12 +00:00
new Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +00:00
numeric Implement LCM and GCD for C++17. Same code as for Library Fundamentals TS. 2016-07-26 14:29:45 +00:00
ostream Implement std::string_view as described in http://wg21.link/P0254R1. Reviewed as https://reviews.llvm.org/D21459 2016-07-21 05:31:24 +00:00
queue Implement P0084r2. Changing emplace return types. 2016-07-21 03:20:17 +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 Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +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 Implement P0084r2. Changing emplace return types. 2016-07-21 03:20:17 +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 Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +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 [streambuf] Added call to traits_type::copy to common case in xsgetn() 2016-06-10 16:00:29 +00:00
string Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +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 Followon to r279744. Find the other exception types and make __throw_XXX routines (and call them). Remove the generic __libcpp_throw routine, since no one uses it anymore. 2016-08-25 17:47:09 +00:00
strstream
system_error Add attribute noreturn to functions that throw 2016-08-27 02:26:42 +00:00
tgmath.h
thread Fix PR30202 - notify_all_at_thread_exit seg faults if run from a raw pthread context. 2016-09-03 08:07:40 +00:00
tuple Implement the std::pair parts of "Improving pair and tuple". Completes N4387. 2016-07-25 04:32:07 +00:00
type_traits Make std::is_assignable tolerate references to incomplete types. 2016-07-25 02:08:55 +00:00
typeindex
typeinfo Fix or suppress GCC warnings during build. 2016-08-29 20:43:38 +00:00
unordered_map Support allocators with explicit conversion constructors. Fixes bug #29000 2016-08-17 05:58:40 +00:00
unordered_set Cleanup: move visibility/linkage attributes to the first declaration. 2016-04-22 01:04:55 +00:00
utility Fix pair::operator=(TupleLike&&). 2016-08-29 01:43:41 +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 Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. 2016-08-25 15:09:01 +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