summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Koehler <kernigh@gmail.com>2020-08-24 21:31:13 +0000
committerIvan Maidanski <ivmai@mail.ru>2021-06-11 21:47:30 +0300
commitb1ca0b743d8d43a516e1e310eeaa3a5f8212d002 (patch)
tree52be808fed32f7ba44f86adf61c838e3de0922ce /src
parent3401a48ab1d756a7e66230ae88a4e183504bc7ad (diff)
downloadlibatomic_ops-b1ca0b743d8d43a516e1e310eeaa3a5f8212d002.tar.gz
Fix size of local variable passed to cas[x] (gcc/sparc)
Use the same type for input and output inline asm operands in AO_compare_and_swap_full(). * src/atomic_ops/sysdeps/gcc/sparc.h [!AO_NO_SPARC_V9 && !AO_GENERALIZE_ASM_BOOL_CAS] (AO_compare_and_swap_full): Change type of ret local variable from char to AO_t.
Diffstat (limited to 'src')
-rw-r--r--src/atomic_ops/sysdeps/gcc/sparc.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/sparc.h b/src/atomic_ops/sysdeps/gcc/sparc.h
index 775da0a..2dd2881 100644
--- a/src/atomic_ops/sysdeps/gcc/sparc.h
+++ b/src/atomic_ops/sysdeps/gcc/sparc.h
@@ -43,7 +43,7 @@ AO_test_and_set_full(volatile AO_TS_t *addr) {
/* Returns nonzero if the comparison succeeded. */
AO_INLINE int
AO_compare_and_swap_full(volatile AO_t *addr, AO_t old, AO_t new_val) {
- char ret;
+ AO_t ret;
__asm__ __volatile__ ("membar #StoreLoad | #LoadLoad\n\t"
# if defined(__arch64__)
"casx [%2],%0,%1\n\t"