* Lai Jiangshan ([email protected]) wrote: > On Saturday, December 8, 2012, Mathieu Desnoyers wrote: > > > * Lai Jiangshan ([email protected] <javascript:;>) wrote: > > > How about the one in yy.diff? > > > > > > xx.diff fixes the one what I had sent in 1/3 patch, but it may still > > > cause warning in future if the complier become more strict. > > > > Hrm. In any cases, I think that even with the 2 patches you propose, the > > warning "unused expression return" would still be valid (because we end > > up not using the result of the outer statement-expression). We might > > want to consider simpler approaches: > > > > 1 - Add the missing (void) casts before each CMM_STORE_SHARED() in the > > code. I don't like this because it makes the CMM_STORE_SHARED common > > case more cumbersome to use. > > > I don't like it either, it is not friendly. > > > > 2 - Change the CMM_STORE_SHARED() API so it does not return anything. > > I think most use-cases don't involve using its return value anyway. > > > > It will break the original goal: > CMM_STORE_SHARED() can be used as chained assignment: > tmp = CMM_STORE_SHARED(x, v) > CMM_STORE_SHARED(y, CMM_STORE_SHARED(x, v)) > func(CMM_STORE_SHARED(x,v))
Indeed, I'd hate to have to change this semantic. Thanks, Mathieu > > > > > Thoughts ? > > > > Thanks, > > > > Mathieu > > > > > > > > On Sat, Dec 8, 2012 at 1:27 AM, Lai Jiangshan > > > <[email protected]<javascript:;>> > > wrote: > > > > > > > > > > > > On Saturday, December 8, 2012, Mathieu Desnoyers wrote: > > > >> > > > >> * Lai Jiangshan ([email protected] <javascript:;>) wrote: > > > >> > The last expression result is unused and clang will complain. > > > >> > The trick in the patch supresses the complaint > > > >> > > > >> Hrm, but with this patch, gcc complains: > > > >> > > > >> rculfhash.c:1921:3: warning: variable '_w' set but not used > > > >> [-Wunused-but-set-variable] > > > >> > > > >> using > > > >> > > > >> gcc version 4.7.2 (Debian 4.7.2-4) > > > > > > > > > > > > Ouch, my gcc is too old > > > > > > > > > > > >> > > > >> > > > >> Thoughts ? > > > >> > > > >> Thanks, > > > >> > > > >> Mathieu > > > >> > > > >> > > > > >> > Signed-off-by: Lai Jiangshan <[email protected] <javascript:;>> > > > >> > --- > > > >> > urcu/system.h | 5 ++++- > > > >> > 2 files changed, 4 insertions(+), 1 deletions(-) > > > >> > > > > >> > diff --git a/urcu/system.h b/urcu/system.h > > > >> > index 2a45f22..6b7b0af 100644 > > > >> > --- a/urcu/system.h > > > >> > +++ b/urcu/system.h > > > >> > @@ -46,12 +46,15 @@ > > > >> > /* > > > >> > * Store v into x, where x is located in shared memory. Performs > > the > > > >> > * required cache flush after writing. Returns v. > > > >> > + * "_w" here avoids the warning from clang: > > > >> > + * warning: expression result unused [-Wunused-value] > > > >> > */ > > > >> > #define CMM_STORE_SHARED(x, v) \ > > > >> > ({ \ > > > >> > __typeof__(x) _v = _CMM_STORE_SHARED(x, v); \ > > > >> > + __typeof__(x) _w; \ > > > >> > cmm_smp_wmc(); \ > > > >> > - _v; \ > > > >> > + _w = _v; \ > > > >> > }) > > > >> > > > > >> > #endif /* _URCU_SYSTEM_H */ > > > >> > -- > > > >> > 1.7.4.4 > > > >> > > > > >> > > > > >> > _______________________________________________ > > > >> > lttng-dev mailing list > > > >> > [email protected] <javascript:;> > > > >> > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > > > >> > > > >> > > > >> -- > > > >> Mathieu Desnoyers > > > >> Operating System Efficiency R&D Consultant > > > >> EfficiOS Inc. > > > >> http://www.efficios.com > > > >> > > > >> _______________________________________________ > > > >> lttng-dev mailing list > > > >> [email protected] <javascript:;> > > > >> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > > > > > > > > > > -- > > Mathieu Desnoyers > > Operating System Efficiency R&D Consultant > > EfficiOS Inc. > > http://www.efficios.com > > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
