Re: Parenthesize macros in xfs

From: Måns Rullgård
Date: Sun Mar 26 2006 - 07:21:28 EST


Jan Engelhardt <jengelh@xxxxxxxxxxxxxxx> writes:

>>>>> + swapfunc(a, b, es, swaptype) \
>>>>> +} while(0)
>>>> ^^
>>>>Missing semicolon.
>>>
>>> It was missing before too. ;)
>>
>>No, previously it was provided at the call site.
>
> Bad habit IMO. It does not hurt to provide it in both the macro and
> the call site, GCC can handle empty instructions.

A double semicolon can cause all sorts of hard to debug problems.
Consider this:

#define foo() bar();
/* ... */
if(x)
foo();
else
baz();

This will expand to syntactically invalid code because of the extra
semicolon.

--
Måns Rullgård
mru@xxxxxxxxxxxxx

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/