forked from OSchip/llvm-project
[ubsan] Drop use of __atomic_exchange_n for now to fix build for some.
Need a more reliable way to check for support of this intrinsic. llvm-svn: 171955
This commit is contained in:
parent
cc951b284b
commit
b50565b21a
|
@ -64,13 +64,7 @@ public:
|
|||
/// \brief Atomically acquire a copy, disabling original in-place.
|
||||
/// Exactly one call to acquire() returns a copy that isn't disabled.
|
||||
SourceLocation acquire() {
|
||||
#ifdef __ATOMIC_RELAXED
|
||||
// Use weaker ordering if available (relaxed/monotonic)
|
||||
u32 OldColumn = __atomic_exchange_n(&Column, ~u32(0), __ATOMIC_RELAXED);
|
||||
#else
|
||||
// Otherwise, do a TAS which has acquire semantics, stronger than needed.
|
||||
u32 OldColumn = __sync_lock_test_and_set(&Column, ~u32(0));
|
||||
#endif
|
||||
return SourceLocation(Filename, Line, OldColumn);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue