diff --git a/src/hb-atomic.hh b/src/hb-atomic.hh index b95fe5d96..d6dfb0f57 100644 --- a/src/hb-atomic.hh +++ b/src/hb-atomic.hh @@ -111,11 +111,17 @@ _hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N) #endif -/* This we always use std::atomic for; and should never be disabled. */ -#include #ifndef _hb_compiler_memory_r_barrier +/* This we always use std::atomic for; and should never be disabled... + * except that MSVC gives me an internal compiler error on it. */ +#if !defined(_MSC_VER) +#include #define _hb_compiler_memory_r_barrier() std::atomic_signal_fence (std::memory_order_acquire) +#else +#define _hb_compiler_memory_r_barrier() do {} while (0) #endif +#endif + #ifndef _hb_memory_r_barrier