Re: [exim-dev] [Valgrind-users] [Bug 1050] [PATCH] Portabili…

Top Page
Delete this message
Reply to this message
Author: Bart Van Assche
Date:  
To: Tony Finch
CC: exim-dev, Chris Thompson, David Woodhouse, valgrind-users, Steen Hammerum
Subject: 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).

Bart.