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

Reply via email to