Source code
Revision control
Copy as Markdown
Other Tools
diff --git a/gfx/cairo/libpixman/src/pixman-mmx.c b/gfx/cairo/libpixman/src/pixman-mmx.c
--- a/gfx/cairo/libpixman/src/pixman-mmx.c
+++ b/gfx/cairo/libpixman/src/pixman-mmx.c
@@ -132,23 +132,23 @@ extern __inline __m64 __attribute__((__g
/* If __m64 is defined as a struct or union, then define M64_MEMBER to be
* the name of the member used to access the data.
* If __m64 requires using mm_cvt* intrinsics functions to convert between
* uint64_t and __m64 values, then define USE_CVT_INTRINSICS.
* If __m64 and uint64_t values can just be cast to each other directly,
* then define USE_M64_CASTS.
* If __m64 is a double datatype, then define USE_M64_DOUBLE.
*/
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
# define M64_MEMBER m64_u64
#elif defined(__ICC)
# define USE_CVT_INTRINSICS
#elif defined(USE_LOONGSON_MMI)
# define USE_M64_DOUBLE
-#elif defined(__GNUC__)
+#elif defined(__GNUC__) || defined(__clang__)
# define USE_M64_CASTS
#elif defined(__SUNPRO_C)
# if (__SUNPRO_C >= 0x5120) && !defined(__NOVECTORSIZE__)
/* Solaris Studio 12.3 (Sun C 5.12) introduces __attribute__(__vector_size__)
* support, and defaults to using it to define __m64, unless __NOVECTORSIZE__
* is defined. If it is used, then the mm_cvt* intrinsics must be used.
*/
# define USE_CVT_INTRINSICS