Auteur: Bart Van Assche Date: À: Tony Finch CC: exim-dev, Chris Thompson, David Woodhouse, valgrind-users, Steen Hammerum Sujet: Re: [exim-dev] [Valgrind-users] [Bug 1050] [PATCH] Portability
fixes for memcheck.h.
On Wed, Jan 12, 2011 at 3:28 PM, Tony Finch <dot@???> wrote: > On Wed, 12 Jan 2011, David Woodhouse wrote:
>>
>> Can we turn the ({ ... }) extension into a static inline function? Or is
>> that not sufficiently portable either?
>
> No, nested functions are not allowed in standard C.
>
> It looks to me like the macros were originally written so that the first
> argument was supposed to be an lvalue to receive the result, and they were
> not supposed to be used in an expression context. To make the
> block-expression wrappers work, I think the basic
> VALGRIND_DO_CLIENT_REQUEST() macro will have to be changed to return a
> result rather than take an lvalue.
Please have a look at vg_VALGRIND_DO_CLIENT_REQUEST_EXPR() in
<valgrind/valgrind.h> (as included in version 3.6.0).