File tree 2 files changed +9
-3
lines changed
2 files changed +9
-3
lines changed Original file line number Diff line number Diff line change 12
12
#include < __atomic/contention_t.h>
13
13
#include < __atomic/cxx_atomic_impl.h>
14
14
#include < __atomic/memory_order.h>
15
+ #include < __atomic/to_gcc_order.h>
15
16
#include < __availability>
16
17
#include < __chrono/duration.h>
17
18
#include < __config>
18
19
#include < __memory/addressof.h>
19
20
#include < __thread/poll_with_backoff.h>
20
21
#include < __threading_support>
21
22
#include < __type_traits/decay.h>
23
+ #include < __type_traits/enable_if.h>
24
+ #include < __type_traits/remove_cv.h>
22
25
#include < cstring>
23
26
24
27
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -35,8 +38,8 @@ struct __is_cxx_atomic_impl<__cxx_atomic_impl<_Tp> > : true_type {};
35
38
36
39
template <class _Tp >
37
40
_LIBCPP_HIDE_FROM_ABI __enable_if_t <!__is_cxx_atomic_impl<__remove_cv_t <_Tp> >::value, _Tp>
38
- __cxx_atomic_load (_Tp* __ptr, memory_order __order) noexcept {
39
- alignas (_Tp) unsigned char __mem[sizeof (_Tp)];
41
+ __cxx_atomic_load (_Tp* __ptr, memory_order __order) _NOEXCEPT {
42
+ _ALIGNAS_TYPE (_Tp) unsigned char __mem[sizeof (_Tp)];
40
43
auto * __ret = reinterpret_cast <_Tp*>(__mem);
41
44
__atomic_load (__ptr, __ret, __to_gcc_order (__order));
42
45
return *__ret;
Original file line number Diff line number Diff line change @@ -1096,7 +1096,10 @@ module std_private_atomic_atomic_flag [system] {
1096
1096
module std_private_atomic_atomic_init [system] { header "__atomic/atomic_init.h" }
1097
1097
module std_private_atomic_atomic_lock_free [system] { header "__atomic/atomic_lock_free.h" }
1098
1098
module std_private_atomic_atomic_ref [system] { header "__atomic/atomic_ref.h" }
1099
- module std_private_atomic_atomic_sync [system] { header "__atomic/atomic_sync.h" }
1099
+ module std_private_atomic_atomic_sync [system] {
1100
+ header "__atomic/atomic_sync.h"
1101
+ export std_private_atomic_to_gcc_order
1102
+ }
1100
1103
module std_private_atomic_check_memory_order [system] { header "__atomic/check_memory_order.h" }
1101
1104
module std_private_atomic_contention_t [system] { header "__atomic/contention_t.h" }
1102
1105
module std_private_atomic_cxx_atomic_impl [system] { header "__atomic/cxx_atomic_impl.h" }
You can’t perform that action at this time.
0 commit comments