[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/4] hvmloader: Fixup pci_write* macros



>>> On 15.06.15 at 18:09, <mihai.dontu@xxxxxxxxx> wrote:
> On Mon, 15 Jun 2015 16:23:13 +0100 Jan Beulich wrote:
>> >>> On 15.06.15 at 16:35, <andrew.cooper3@xxxxxxxxxx> wrote:
>> > On 15/06/15 15:30, Don Slutz wrote:
>> >> On 06/15/15 10:19, Andrew Cooper wrote:
>> >>> Furthermore, what about devfn or reg?
>> >>>
>> >> devfn and reg do not need the bracketing since they are just passed,
>> >> but I have no issue with adding the extra brackets.
>> > 
>> > Macros, under all circumstances, should have all of their parameters
>> > bracketed for safety.
>> 
>> No, as this harms readability:
>> 
>> #define macro(x) function((x))
>> 
>> would completely pointlessly be having an extra set of parentheses.
>> And
>> 
>> #define macro(x, y) function(x, y)
>> 
>> is just the logical extension to that: There is nothing the expressions
>> passed as arguments could contain to require parenthesization, as
>> there's no operator of precedence lower than comma (and if either
>> argument contains a comma expression, it needs to be
>> parenthesized at the invocation site anyway).
> 
> I think parenthesis are just long term guards against classic surprises
> such as:
> 
> #define macro(x) function(x * 2)
> ...
> macro(N + 3)

There is no question that x needs to be parenthesized in the example
you give; that does in no way mean _all_ macro parameters need to
follow that, which is what my earlier reply was trying to explain.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.