Fix cycles aliasing warnings caused by motion blur transforms.

This commit is contained in:
Brecht Van Lommel 2012-12-21 10:26:48 +00:00
parent eb219852a8
commit 12117a8187
4 changed files with 5 additions and 1 deletions

@ -37,6 +37,7 @@
#define __global #define __global
#define __shared __shared__ #define __shared __shared__
#define __constant #define __constant
#define __may_alias
/* No assert supported for CUDA */ /* No assert supported for CUDA */

@ -40,6 +40,7 @@
#define __device #define __device
#define __device_inline __device #define __device_inline __device
#define __device_noinline __device __noinline #define __device_noinline __device __noinline
#define __may_alias
/* no assert in opencl */ /* no assert in opencl */
#define kernel_assert(cond) #define kernel_assert(cond)

@ -45,7 +45,7 @@ typedef struct Transform {
* *
* For the DecompMotionTransform we drop scale from pre/post. */ * For the DecompMotionTransform we drop scale from pre/post. */
typedef struct MotionTransform { typedef struct __may_alias MotionTransform {
Transform pre; Transform pre;
Transform mid; Transform mid;
Transform post; Transform post;

@ -39,12 +39,14 @@
#if defined(_WIN32) && !defined(FREE_WINDOWS) #if defined(_WIN32) && !defined(FREE_WINDOWS)
#define __device_inline static __forceinline #define __device_inline static __forceinline
#define __align(...) __declspec(align(__VA_ARGS__)) #define __align(...) __declspec(align(__VA_ARGS__))
#define __may_alias
#else #else
#define __device_inline static inline __attribute__((always_inline)) #define __device_inline static inline __attribute__((always_inline))
#ifndef FREE_WINDOWS64 #ifndef FREE_WINDOWS64
#define __forceinline inline __attribute__((always_inline)) #define __forceinline inline __attribute__((always_inline))
#endif #endif
#define __align(...) __attribute__((aligned(__VA_ARGS__))) #define __align(...) __attribute__((aligned(__VA_ARGS__)))
#define __may_alias __attribute__((__may_alias__))
#endif #endif
#endif #endif