Fix cycles aliasing warnings caused by motion blur transforms.
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 21 Dec 2012 10:26:48 +0000 (10:26 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 21 Dec 2012 10:26:48 +0000 (10:26 +0000)
intern/cycles/kernel/kernel_compat_cuda.h
intern/cycles/kernel/kernel_compat_opencl.h
intern/cycles/util/util_transform.h
intern/cycles/util/util_types.h

index 40bae069dea6708ab831d8376b8ac255391162c8..9fd065c3cda0679a72604ca841880a5f30a1e975 100644 (file)
@@ -37,6 +37,7 @@
 #define __global
 #define __shared __shared__
 #define __constant
+#define __may_alias
 
 /* No assert supported for CUDA */
 
index a9d18588cc8439960ddba160fc2db64afa061f66..abb2f094f5cc23a5cc1cd6c396a12c5015d74257 100644 (file)
@@ -40,6 +40,7 @@
 #define __device
 #define __device_inline __device
 #define __device_noinline  __device __noinline
+#define __may_alias
 
 /* no assert in opencl */
 #define kernel_assert(cond)
index a1c12ddf0e1f1fce0a3390a4c4d86274edd75a46..1f19f85f894686381a168bfc8af14db95936b08d 100644 (file)
@@ -45,7 +45,7 @@ typedef struct Transform {
  *
  * For the DecompMotionTransform we drop scale from pre/post. */
 
-typedef struct MotionTransform {
+typedef struct __may_alias MotionTransform {
        Transform pre;
        Transform mid;
        Transform post;
index 3d246104ddc33e8abf9b5171655f40572677de74..00b6cf5c56e303ec8c1660c4aa0ef104d56b9db9 100644 (file)
 #if defined(_WIN32) && !defined(FREE_WINDOWS)
 #define __device_inline static __forceinline
 #define __align(...) __declspec(align(__VA_ARGS__))
+#define __may_alias
 #else
 #define __device_inline static inline __attribute__((always_inline))
 #ifndef FREE_WINDOWS64
 #define __forceinline inline __attribute__((always_inline))
 #endif
 #define __align(...) __attribute__((aligned(__VA_ARGS__)))
+#define __may_alias __attribute__((__may_alias__))
 #endif
 
 #endif