diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/atomic/intern/atomic_ops_msvc.h | 11 | ||||
-rw-r--r-- | intern/cycles/CMakeLists.txt | 4 | ||||
-rw-r--r-- | intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/intern/atomic/intern/atomic_ops_msvc.h b/intern/atomic/intern/atomic_ops_msvc.h index c24a9095735..39ed4efe3a8 100644 --- a/intern/atomic/intern/atomic_ops_msvc.h +++ b/intern/atomic/intern/atomic_ops_msvc.h @@ -40,7 +40,11 @@ #include <windows.h> #include <intrin.h> -/******************************************************************************/ +#if defined (__clang__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wincompatible-pointer-types" +#endif + /* 64-bit operations. */ #if (LG_SIZEOF_PTR == 8 || LG_SIZEOF_INT == 8) /* Unsigned */ @@ -205,4 +209,9 @@ ATOMIC_INLINE int8_t atomic_fetch_and_or_int8(int8_t *p, int8_t b) #endif } + +#if defined (__clang__) +# pragma GCC diagnostic pop +#endif + #endif /* __ATOMIC_OPS_MSVC_H__ */ diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index c3305ac3dd8..100a52625d1 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -31,7 +31,7 @@ elseif(NOT WITH_CPU_SSE) set(CXX_HAS_SSE FALSE) set(CXX_HAS_AVX FALSE) set(CXX_HAS_AVX2 FALSE) -elseif(WIN32 AND MSVC) +elseif(WIN32 AND MSVC AND NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CXX_HAS_SSE TRUE) set(CXX_HAS_AVX TRUE) set(CXX_HAS_AVX2 TRUE) @@ -306,7 +306,7 @@ if(WITH_CYCLES_CUDA_BINARIES AND (NOT WITH_CYCLES_CUBIN_COMPILER)) elseif(${CUDA_VERSION} EQUAL "9.1") set(MAX_MSVC 1911) endif() - if(NOT MSVC_VERSION LESS ${MAX_MSVC}) + if(NOT MSVC_VERSION LESS ${MAX_MSVC} OR CMAKE_C_COMPILER_ID MATCHES "Clang") message(STATUS "nvcc not supported for this compiler version, using cycles_cubin_cc instead.") set(WITH_CYCLES_CUBIN_COMPILER ON) endif() diff --git a/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h b/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h index 56c38d8101c..7bf833eadbc 100644 --- a/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h +++ b/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h @@ -349,7 +349,7 @@ template<typename T> struct TextureInterpolator { * Only happens for AVX2 kernel and global __KERNEL_SSE__ vectorization * enabled. */ -#ifdef __GNUC__ +#if defined(__GNUC__) || defined(__clang__) static ccl_always_inline #else static ccl_never_inline |