forked from OSchip/llvm-project
Omit atomic_{,un}signed_lock_free if unsupported
On targets that have limited atomic support, e.g. ones that define ATOMIC_*_LOCK_FREE to '1' ("sometimes lock free"), we would end up referencing yet-undefined __libcpp_{,un}signed_lock_free. This commit adds a guard to prevent these references for such targets. Differential Revision: https://reviews.llvm.org/D118391
This commit is contained in:
parent
e900f0584e
commit
d5ab243c6f
|
@ -2692,10 +2692,13 @@ typedef conditional<_LIBCPP_CONTENTION_LOCK_FREE, __cxx_contention_t, char>::typ
|
|||
typedef conditional<_LIBCPP_CONTENTION_LOCK_FREE, __cxx_contention_t, unsigned char>::type __libcpp_unsigned_lock_free;
|
||||
#else
|
||||
// No signed/unsigned lock-free types
|
||||
#define _LIBCPP_NO_LOCK_FREE_TYPES
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_NO_LOCK_FREE_TYPES)
|
||||
typedef atomic<__libcpp_signed_lock_free> atomic_signed_lock_free;
|
||||
typedef atomic<__libcpp_unsigned_lock_free> atomic_unsigned_lock_free;
|
||||
#endif
|
||||
|
||||
#define ATOMIC_FLAG_INIT {false}
|
||||
#define ATOMIC_VAR_INIT(__v) {__v}
|
||||
|
|
Loading…
Reference in New Issue