From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: question regarding gnu-isms Date: Thu, 27 Apr 2006 18:41:58 -0500 Message-ID: <445156C6.6000507@us.ibm.com> References: <20060427223641.GG3572@vino.zko.hp.com> <44514DE1.3000201@us.ibm.com> <200604280008.47804.mark.williamson@cl.cam.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200604280008.47804.mark.williamson@cl.cam.ac.uk> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Mark Williamson Cc: aron@hp.com, xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Mark Williamson wrote: > OK, now I'm curious too... > > >>> same file: >>> >>> #define xen_create_contiguous_region(vstart, order, address_bits) >>> ({0;}) >>> > > >> But clearly you cannot use return for this (and you cannot avoid making >> a statement here). The GNU ({}) syntax allows you to have statements >> within an expression and the value of the very last statement in the >> block becomes the value of the expression. The above could be written: >> > > But why do that, if you just wanted to return a constant? why not > > #define xen_create_contiguous_region(vstart, order, address_bits) 0 > > for instance? > I thought the same exact thing myself. Of course, I can't find it in my tree (xen_create_contiguous_region is a function) so perhaps someone has already fixed it. Regards, Anthony Liguori > Cheers, > Mark > > >> #define min(a, b) ({int lhs = a; int rhs = b; (lhs < rhs) ? lhs : rhs;}) >> >> All of these are documented in the GCC Info page (see the section on C >> Extensions). >> >> Regards, >> >> Anthony Liguori >> >> >>> This looks like the usual ({...}) construction but seems >>> pointless. The nearest explanation I could gather for this >>> applies only to C++... surely I'm missing something. :-) >>> >>> Thanks, >>> Aron >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@lists.xensource.com >>> http://lists.xensource.com/xen-devel >>> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xensource.com >> http://lists.xensource.com/xen-devel >> > >