Index: Source/wtf/Atomics.h |
diff --git a/Source/wtf/Atomics.h b/Source/wtf/Atomics.h |
index df9e9750eb5d42035c2ef484a573c6774221195a..fb36bf6fb042a60996f0b929c3fc58b377e696c4 100644 |
--- a/Source/wtf/Atomics.h |
+++ b/Source/wtf/Atomics.h |
@@ -187,19 +187,28 @@ ALWAYS_INLINE unsigned acquireLoad(volatile const unsigned* ptr) |
#if defined(ADDRESS_SANITIZER) |
-__attribute__((no_sanitize_address)) ALWAYS_INLINE void asanUnsafeReleaseStore(volatile unsigned* ptr, unsigned value) |
+// FIXME: See comment on NO_SANITIZE_ADDRESS in platform/heap/AddressSanitizer.h |
+#if !OS(WIN) || COMPILER(CLANG) |
+#define NO_SANITIZE_ADDRESS_ATOMICS __attribute__((no_sanitize_address)) |
+#else |
+#define NO_SANITIZE_ADDRESS_ATOMICS |
+#endif |
+ |
+NO_SANITIZE_ADDRESS_ATOMICS ALWAYS_INLINE void asanUnsafeReleaseStore(volatile unsigned* ptr, unsigned value) |
{ |
MEMORY_BARRIER(); |
*ptr = value; |
} |
-__attribute__((no_sanitize_address)) ALWAYS_INLINE unsigned asanUnsafeAcquireLoad(volatile const unsigned* ptr) |
+NO_SANITIZE_ADDRESS_ATOMICS ALWAYS_INLINE unsigned asanUnsafeAcquireLoad(volatile const unsigned* ptr) |
{ |
unsigned value = *ptr; |
MEMORY_BARRIER(); |
return value; |
} |
+#undef NO_SANITIZE_ADDRESS_ATOMICS |
+ |
#endif // defined(ADDRESS_SANITIZER) |
#undef MEMORY_BARRIER |