diff --git a/src/hb-atomic-private.hh b/src/hb-atomic-private.hh index 918852d18..a833a6c71 100644 --- a/src/hb-atomic-private.hh +++ b/src/hb-atomic-private.hh @@ -45,7 +45,13 @@ #elif !defined(HB_NO_MT) && defined(_MSC_VER) && _MSC_VER >= 1600 #include +/* On x86, _InterlockedCompareExchangePointer is a macro defined in concrt.h */ +#if defined(_M_IX86) +#include +#pragma intrinsic(_InterlockedExchangeAdd) +#else #pragma intrinsic(_InterlockedExchangeAdd, _InterlockedCompareExchangePointer) +#endif typedef long hb_atomic_int_t; #define hb_atomic_int_add(AI, V) _InterlockedExchangeAdd (&(AI), (V))