On 05/10/2018 11:36 AM, Peter Maydell wrote: > Some versions of gcc produce a spurious warning if the result of > __atomic_compare_echange_n() is not used and the type involved > is a signed 8 bit value: > error: value computed is not used [-Werror=unused-value] > This has been seen on at least > gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > Work around this by using an explicit cast to void to indicate > that we don't care about the return value. > > We don't currently use our atomic_cmpxchg() macro on any signed > 8 bit types, but the upcoming support for the Arm v8.1-Atomics > will require it. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > Sending out my workaround as an actual patch. If this is OK I'll > put in via target-arm.next as it's a dependency for the v8.1-atomics > series. > > include/qemu/atomic.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h > index d73c9e14d7..9ed39effd3 100644 > --- a/include/qemu/atomic.h > +++ b/include/qemu/atomic.h > @@ -187,7 +187,7 @@ > /* Returns the eventual value, failed or not */ > #define atomic_cmpxchg__nocheck(ptr, old, new) ({ \ > typeof_strip_qual(*ptr) _old = (old); \ > - __atomic_compare_exchange_n(ptr, &_old, new, false, \ > + (void)__atomic_compare_exchange_n(ptr, &_old, new, false, \ > __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); \ > _old; \ > }) >