Bug 1412490 MinGW can handle MemoryBarrier (it defines it as _mm_mfence), but it doesn't recognize the '::' draft
authorTom Ritter <tom@mozilla.com>
Fri, 27 Oct 2017 23:24:40 -0500
changeset 688077 7ccfeb1a4ab342ca574c9cca15488be865f5866c
parent 688076 6c0a84aa6011ddb84d1fbbc66762c4c3e39a05f3
child 737791 5e7c538e8e316beb08b8bd1f42ed802653ffc8be
push id86665
push userbmo:tom@mozilla.com
push dateSat, 28 Oct 2017 06:11:51 +0000
bugs1412490
milestone58.0a1
Bug 1412490 MinGW can handle MemoryBarrier (it defines it as _mm_mfence), but it doesn't recognize the '::' MozReview-Commit-ID: 8SPadqTjICl
ipc/chromium/src/base/atomicops_internals_x86_msvc.h
--- a/ipc/chromium/src/base/atomicops_internals_x86_msvc.h
+++ b/ipc/chromium/src/base/atomicops_internals_x86_msvc.h
@@ -41,17 +41,21 @@ inline Atomic32 Barrier_AtomicIncrement(
 
 inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
                                           Atomic32 increment) {
   return Barrier_AtomicIncrement(ptr, increment);
 }
 
 inline void MemoryBarrier() {
   // We use MemoryBarrier from WinNT.h
+#ifdef __MINGW32__
+  MemoryBarrier();
+#else
   ::MemoryBarrier();
+#endif
 }
 
 inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
   return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
 }