[compiler-rt] r255242 - [asan] Use atomic_uintptr_t instead of atomic_uint64_t in SuppressErrorReport.

Yury Gribov via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 10 03:07:20 PST 2015


Author: ygribov
Date: Thu Dec 10 05:07:19 2015
New Revision: 255242

URL: http://llvm.org/viewvc/llvm-project?rev=255242&view=rev
Log:
[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. 

Modified:
    compiler-rt/trunk/lib/asan/asan_report.cc

Modified: compiler-rt/trunk/lib/asan/asan_report.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_report.cc?rev=255242&r1=255241&r2=255242&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_report.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_report.cc Thu Dec 10 05:07:19 2015
@@ -32,7 +32,7 @@ static char *error_message_buffer = null
 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
 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;




More information about the llvm-commits mailing list