From 8fcf05ac2e88483e8103f9aabc74ecea00c0238c Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Sat, 7 Jan 2023 20:39:46 +1100 Subject: [PATCH] base: wrap __machine_rw_barrier() in function for Solaris __machine_rw_barrier() assembly expansion cannot be treated as a function call (as it is later in the heim_base_atomic_store() macro definition) --- lib/base/heimbase-atomics.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/base/heimbase-atomics.h b/lib/base/heimbase-atomics.h index 271c39276..1a4a5a881 100644 --- a/lib/base/heimbase-atomics.h +++ b/lib/base/heimbase-atomics.h @@ -85,8 +85,14 @@ #elif defined(__sun) #include +#include -#define heim_base_atomic_barrier() __machine_rw_barrier() +static inline void __heim_base_atomic_barrier(void) +{ + __machine_rw_barrier(); +} + +#define heim_base_atomic_barrier() __heim_base_atomic_barrier() #define heim_base_atomic_inc(x) atomic_inc_uint_nv((volatile uint_t *)(x)) #define heim_base_atomic_dec(x) atomic_dec_uint_nv((volatile uint_t *)(x))