<br><br>On Saturday, December 8, 2012, Mathieu Desnoyers  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">* Lai Jiangshan (<a href="javascript:;" onclick="_e(event, 'cvml', 'eag0628@gmail.com')">eag0628@gmail.com</a>) wrote:<br>

> How about the one in yy.diff?<br>
><br>
> xx.diff fixes the one what I had sent in 1/3 patch, but it may still<br>
> cause warning in future if the complier become more strict.<br>
<br>
Hrm. In any cases, I think that even with the 2 patches you propose, the<br>
warning "unused expression return" would still be valid (because we end<br>
up not using the result of the outer statement-expression). We might<br>
want to consider simpler approaches:<br>
<br>
1 - Add the missing (void) casts before each CMM_STORE_SHARED() in the<br>
    code. I don't like this because it makes the CMM_STORE_SHARED common<br>
    case more cumbersome to use.</blockquote><div><br></div><div>I don't like it either, it is not friendly.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

2 - Change the CMM_STORE_SHARED() API so it does not return anything.<br>
    I think most use-cases don't involve using its return value anyway.</blockquote><div><br></div><span class="Apple-style-span" style><br></span><div dir="ltr">It will break the original goal:</div><span class="Apple-style-span" style>CMM_STORE_SHARED() can be used as chained assignment:</span><div>
<span class="Apple-style-span" style dir="ltr">tmp = </span><span class="Apple-style-span" style dir="ltr"><span class="Apple-style-span" style>CMM_STORE_SHARED(x, v)</span><br></span></div><div><span class="Apple-style-span" style dir="ltr">CMM_STORE_SHARED(y, </span><span class="Apple-style-span" style>CMM_STORE_SHARED(x, v))</span></div>
<div><span class="Apple-style-span" style dir="ltr">func(</span><span class="Apple-style-span" style>CMM_STORE_SHARED(x,v))<span></span></span><span class="Apple-style-span" style dir="ltr"><br></span><div dir="ltr"><br></div>
<div dir="ltr"><br></div></div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thoughts ?<br>
<br>
Thanks,<br>
<br>
Mathieu<br>
<br>
><br>
> On Sat, Dec 8, 2012 at 1:27 AM, Lai Jiangshan <<a href="javascript:;" onclick="_e(event, 'cvml', 'eag0628@gmail.com')">eag0628@gmail.com</a>> wrote:<br>
> ><br>
> ><br>
> > On Saturday, December 8, 2012, Mathieu Desnoyers wrote:<br>
> >><br>
> >> * Lai Jiangshan (<a href="javascript:;" onclick="_e(event, 'cvml', 'laijs@cn.fujitsu.com')">laijs@cn.fujitsu.com</a>) wrote:<br>
> >> > The last expression result is unused and clang will complain.<br>
> >> > The trick in the patch supresses the complaint<br>
> >><br>
> >> Hrm, but with this patch, gcc complains:<br>
> >><br>
> >> rculfhash.c:1921:3: warning: variable '_w' set but not used<br>
> >> [-Wunused-but-set-variable]<br>
> >><br>
> >> using<br>
> >><br>
> >> gcc version 4.7.2 (Debian 4.7.2-4)<br>
> ><br>
> ><br>
> > Ouch, my gcc is too old<br>
> ><br>
> ><br>
> >><br>
> >><br>
> >> Thoughts ?<br>
> >><br>
> >> Thanks,<br>
> >><br>
> >> Mathieu<br>
> >><br>
> >> ><br>
> >> > Signed-off-by: Lai Jiangshan <<a href="javascript:;" onclick="_e(event, 'cvml', 'laijs@cn.fujitsu.com')">laijs@cn.fujitsu.com</a>><br>
> >> > ---<br>
> >> >  urcu/system.h        |    5 ++++-<br>
> >> >  2 files changed, 4 insertions(+), 1 deletions(-)<br>
> >> ><br>
> >> > diff --git a/urcu/system.h b/urcu/system.h<br>
> >> > index 2a45f22..6b7b0af 100644<br>
> >> > --- a/urcu/system.h<br>
> >> > +++ b/urcu/system.h<br>
> >> > @@ -46,12 +46,15 @@<br>
> >> >  /*<br>
> >> >   * Store v into x, where x is located in shared memory. Performs the<br>
> >> >   * required cache flush after writing. Returns v.<br>
> >> > + * "_w" here avoids the warning from clang:<br>
> >> > + *   warning: expression result unused [-Wunused-value]<br>
> >> >   */<br>
> >> >  #define CMM_STORE_SHARED(x, v)               \<br>
> >> >       ({                              \<br>
> >> >               __typeof__(x) _v = _CMM_STORE_SHARED(x, v);     \<br>
> >> > +             __typeof__(x) _w;       \<br>
> >> >               cmm_smp_wmc();          \<br>
> >> > -             _v;                     \<br>
> >> > +             _w = _v;                \<br>
> >> >       })<br>
> >> ><br>
> >> >  #endif /* _URCU_SYSTEM_H */<br>
> >> > --<br>
> >> > 1.7.4.4<br>
> >> ><br>
> >> ><br>
> >> > _______________________________________________<br>
> >> > lttng-dev mailing list<br>
> >> > <a href="javascript:;" onclick="_e(event, 'cvml', 'lttng-dev@lists.lttng.org')">lttng-dev@lists.lttng.org</a><br>
> >> > <a href="http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev" target="_blank">http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</a><br>
> >><br>
> >><br>
> >> --<br>
> >> Mathieu Desnoyers<br>
> >> Operating System Efficiency R&D Consultant<br>
> >> EfficiOS Inc.<br>
> >> <a href="http://www.efficios.com" target="_blank">http://www.efficios.com</a><br>
> >><br>
> >> _______________________________________________<br>
> >> lttng-dev mailing list<br>
> >> <a href="javascript:;" onclick="_e(event, 'cvml', 'lttng-dev@lists.lttng.org')">lttng-dev@lists.lttng.org</a><br>
> >> <a href="http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev" target="_blank">http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</a><br>
<br>
<br>
<br>
<br>
--<br>
Mathieu Desnoyers<br>
Operating System Efficiency R&D Consultant<br>
EfficiOS Inc.<br>
<a href="http://www.efficios.com" target="_blank">http://www.efficios.com</a><br>
</blockquote></div>