Remove some gcc-ism from mono_atomic_load_acquire/release, so it can be compiled...
[mono.git] / mono / utils / mono-memory-model.h
index 3fd7bc4c75c839339ff334b4ddc63e4503c4ead3..cf44be678fb800bf50edb7a08ec8a56b1e01c3c7 100644 (file)
@@ -152,14 +152,14 @@ Acquire/release semantics macros.
        *(target) = (value);    \
 } while (0)
 
-#define mono_atomic_load_release(target) ({    \
-       typeof (*target) __tmp; \
+#define mono_atomic_load_release(_type,target) ({      \
+       _type __tmp;    \
        LOAD_RELEASE_FENCE;     \
        __tmp = *target;        \
        __tmp; })
 
-#define mono_atomic_load_acquire(target) ({    \
-       typeof (*target) __tmp = *target;       \
+#define mono_atomic_load_acquire(_type,target) ({      \
+       _type __tmp = *target;  \
        LOAD_ACQUIRE_FENCE;     \
        __tmp; })