From b22f8228580281e575193f97467d0f9fd36df18e Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 14 May 2018 07:26:37 -0400 Subject: [PATCH] atomic.h: Work around gcc spurious "unused value" warning 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. Backports commit cd95fc28fb6d8afced0d70ce52c294d0761a9daa from qemu --- qemu/include/qemu/atomic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/include/qemu/atomic.h b/qemu/include/qemu/atomic.h index 395f64d6..fb16c37d 100644 --- a/qemu/include/qemu/atomic.h +++ b/qemu/include/qemu/atomic.h @@ -194,7 +194,7 @@ void _ReadWriteBarrier(void); /* 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; \ })