On 08/16/2010 01:05 PM, Blue Swirl wrote:
On Sun, Aug 15, 2010 at 9:27 PM, Andreas Schwab<sch...@linux-m68k.org> wrote:
Blue Swirl<blauwir...@gmail.com> writes:
+For variadic macros, stick with C99 syntax:
+
+#define DPRINTF(fmt, ...) \
+ do { printf("IRQ: " fmt, ## __VA_ARGS__); } while (0)
That's not C99 syntax, the combination with ## is a gcc extension. In
C99 you cannot have an empty __VA_ARGS__.
That's too bad, I picked the example from one of our current macros.
Maybe just s/C99/this/ or perhaps we shouldn't specify any
non-standard syntax.
We definitely should discourage the GCC syntax [#define fn(arg...)] as
it's deprecated by the new C99 syntax. Very specifically, only the '##'
is an extension and it's a widely adopted one.
Regards,
Anthony Liguori