On Sun, Nov 4, 2012 at 3:10 PM, Andy Gibbs <[email protected]> wrote: > Hi, > > Please could someone review the attached patch for me before I commit it. > > This patch fixes the rules surrounding the removal of a leading comma where > a __VA_ARGS__ expansion is empty. > > GCC has the extension, implemented already in clang for... > > #define M(...) call(a, ## __VA_ARGS__) > > This will expand to "call(a)" for "M()", removing the comma. However, under > -std=c99, this behaviour changes so that the comma is not removed. The > attached patch follows this behaviour when in c99 mode in clang. In gnu99 > mode, it behaves as before, and similarly for pre-c99 dialects and for c++ > (all checked against gcc's behaviour).
Why do we need to change the behavior in C99 mode? As far as I can tell, it's impossible to construct a strictly conforming program for which the C99 standard specifies behavior different from the gcc extension. -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
