[asan] Use atomic_uintptr_t instead of atomic_uint64_t in SuppressErrorReport.
Some targets (e.g. Mips) don't have 64-bit atomics, so using atomic_uint64_t leads to build failures. Use atomic_uintptr_t to avoid such errors. Patch by Max Ostapenko. llvm-svn: 255242
This commit is contained in:
parent
86de80db37
commit
90a36c5ba1
|
@ -32,7 +32,7 @@ static char *error_message_buffer = nullptr;
|
|||
static uptr error_message_buffer_pos = 0;
|
||||
static BlockingMutex error_message_buf_mutex(LINKER_INITIALIZED);
|
||||
static const unsigned kAsanBuggyPcPoolSize = 25;
|
||||
static __sanitizer::atomic_uint64_t AsanBuggyPcPool[kAsanBuggyPcPoolSize];
|
||||
static __sanitizer::atomic_uintptr_t AsanBuggyPcPool[kAsanBuggyPcPoolSize];
|
||||
|
||||
struct ReportData {
|
||||
uptr pc;
|
||||
|
@ -1007,7 +1007,7 @@ void ReportMacMzReallocUnknown(uptr addr, uptr zone_ptr, const char *zone_name,
|
|||
static bool SuppressErrorReport(uptr pc) {
|
||||
if (!common_flags()->suppress_equal_pcs) return false;
|
||||
for (unsigned i = 0; i < kAsanBuggyPcPoolSize; i++) {
|
||||
u64 cmp = atomic_load_relaxed(&AsanBuggyPcPool[i]);
|
||||
uptr cmp = atomic_load_relaxed(&AsanBuggyPcPool[i]);
|
||||
if (cmp == 0 && atomic_compare_exchange_strong(&AsanBuggyPcPool[i], &cmp,
|
||||
pc, memory_order_relaxed))
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue