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)