From 130a35155171503883aaf18e57f8957ce63d06e8 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 13 Aug 2013 21:51:56 -0700 Subject: [PATCH 1/1] impatomic: silence more clang warnings These 'return' values produce unused value warnings when the value returned by _ATOMIC_STORE_, _ATOMIC_INIT_, and _ATOMIC_MODIFY_ aren't used. Silence these warnings (but leave the ones for _ATOMIC_LOAD_) because we expect that the result of RMW's or stores may rightly be discarded in many cases. --- include/impatomic.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/impatomic.h b/include/impatomic.h index 5548619..1b9ce6b 100644 --- a/include/impatomic.h +++ b/include/impatomic.h @@ -88,14 +88,16 @@ inline void atomic_flag::clear( memory_order __x__ ) volatile ({ volatile __typeof__((__a__)->__f__)* __p__ = & ((__a__)->__f__); \ __typeof__(__m__) __v__ = (__m__); \ model_write_action((void *) __p__, __x__, (uint64_t) __v__); \ - __v__; }) + __v__ = __v__; /* Silence clang (-Wunused-value) */ \ + }) #define _ATOMIC_INIT_( __a__, __m__ ) \ ({ volatile __typeof__((__a__)->__f__)* __p__ = & ((__a__)->__f__); \ __typeof__(__m__) __v__ = (__m__); \ model_init_action((void *) __p__, (uint64_t) __v__); \ - __v__; }) + __v__ = __v__; /* Silence clang (-Wunused-value) */ \ + }) #define _ATOMIC_MODIFY_( __a__, __o__, __m__, __x__ ) \ ({ volatile __typeof__((__a__)->__f__)* __p__ = & ((__a__)->__f__); \ @@ -104,7 +106,8 @@ inline void atomic_flag::clear( memory_order __x__ ) volatile __typeof__((__a__)->__f__) __copy__= __old__; \ __copy__ __o__ __v__; \ model_rmw_action((void *)__p__, __x__, (uint64_t) __copy__); \ - __old__; }) + __old__ = __old__; /* Silence clang (-Wunused-value) */ \ + }) /* No spurious failure for now */ #define _ATOMIC_CMPSWP_WEAK_ _ATOMIC_CMPSWP_ -- 2.34.1