summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Koehler <kernigh@gmail.com>2020-08-24 21:31:13 +0000
committerIvan Maidanski <ivmai@mail.ru>2021-09-09 08:33:50 +0300
commit9f7a1d03e8cd45b4b0a0dd6cc1a90694219e6361 (patch)
tree9ea4385022177d4fef7a73a685a9bdec18e308cd
parentbc82752962ee8146277184cba714dd3d920cd238 (diff)
downloadlibatomic_ops-9f7a1d03e8cd45b4b0a0dd6cc1a90694219e6361.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.
-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 9bd48d4..c9b8303 100644
--- a/src/atomic_ops/sysdeps/gcc/sparc.h
+++ b/src/atomic_ops/sysdeps/gcc/sparc.h
@@ -41,7 +41,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"