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



Reply via email to