Fix build breakage. Use android_atomic_cmpxchg instead of android_atomic_cas
ptr should be volatile int*.
Change-Id: I3cf265c555a6e2a4f653dd751284965276ae36d8
diff --git a/lib/Support/Atomic.cpp b/lib/Support/Atomic.cpp
index 5a62c7f..58497b9 100644
--- a/lib/Support/Atomic.cpp
+++ b/lib/Support/Atomic.cpp
@@ -47,7 +47,8 @@
*ptr = new_value;
return result;
#elif defined(ANDROID_TARGET_BUILD)
- return android_atomic_cas(old_value, new_value, (volatile int32_t*)ptr);
+ return android_atomic_cmpxchg((int32_t)old_value, (int32_t)new_value,
+ (volatile int*)ptr);
#elif defined(__GNUC__)
return __sync_val_compare_and_swap(ptr, old_value, new_value);
#elif defined(_MSC_VER)
@@ -62,7 +63,7 @@
++(*ptr);
return *ptr;
#elif defined(ANDROID_TARGET_BUILD)
- return android_atomic_inc((volatile int32_t*)ptr);
+ return android_atomic_inc((volatile int*)ptr);
#elif defined(__GNUC__)
return __sync_add_and_fetch(ptr, 1);
#elif defined(_MSC_VER)
@@ -77,7 +78,7 @@
--(*ptr);
return *ptr;
#elif defined(ANDROID_TARGET_BUILD)
- return android_atomic_dec((volatile int32_t*)ptr);
+ return android_atomic_dec((volatile int*)ptr);
#elif defined(__GNUC__)
return __sync_sub_and_fetch(ptr, 1);
#elif defined(_MSC_VER)
@@ -92,7 +93,7 @@
*ptr += val;
return *ptr;
#elif defined(ANDROID_TARGET_BUILD)
- return android_atomic_add((int32_t)val, (volatile int32_t*)ptr);
+ return android_atomic_add((int32_t)val, (volatile int*)ptr);
#elif defined(__GNUC__)
return __sync_add_and_fetch(ptr, val);
#elif defined(_MSC_VER)