On Thu, Nov 17, 2011 at 8:42 PM, Jeff King <peff@xxxxxxxx> wrote: > On Thu, Nov 17, 2011 at 04:05:52PM +0530, Ramkumar Ramachandra wrote: > >> The macros __FILE__, __LINE__ and __VA_ARGS__ are gcc-specific >> extensions, no? I was curious to see if some other parts of Git are >> using this: a quick grep returns mailmap.c and notes-merge.c. They >> both use __VA_ARGS__ it for debugging purposes. So, nothing new. > > All three are in C99. I'm pretty sure __FILE__ and __LINE__ were > available in C89, but I only have a copy of C99 handy these days. > Variable-argument macros were definitely introduced in C99 (and were a > gcc extension for a while before then). > >> What happens if GIT_DEBUG_MEMCHECK is set, but I'm not using gcc? >> Also, it's probably worth mentioning in the commit message that this >> debugging trick is gcc-specific. > > Older compilers will probably barf on the variable-argument macros. Anyway to detect if __VA_ARGS__ is supported at compile time? I guess #ifdef __GNUC__ is the last resort. notes-merge.c introduces __VA_ARGS__ since v1.7.4 so we may want to do something there too. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html