<div dir="ltr">Nico got it in r<span style="font-family:arial,sans-serif;font-size:13px">184972.</span></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 26, 2013 at 1:34 PM, Dmitri Gribenko <span dir="ltr"><<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Wed, Jun 26, 2013 at 10:16 AM, Reid Kleckner <<a href="mailto:reid@kleckner.net">reid@kleckner.net</a>> wrote:<br>

> Author: rnk<br>
> Date: Wed Jun 26 12:16:08 2013<br>
> New Revision: 184968<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=184968&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=184968&view=rev</a><br>
> Log:<br>
> Match MSVC's handling of commas during macro argument expansion<br>
><br>
> This allows clang to parse the type_traits header in Visual Studio 2012,<br>
> which is included widely in practice.<br>
><br>
> This is a rework of r163022 by João Matos.  The original patch broke<br>
> preprocessing of gtest headers, which this patch addresses.<br>
><br>
> Patch by Will Wilson!<br>
><br>
> Modified:<br>
>     cfe/trunk/include/clang/Lex/Token.h<br>
>     cfe/trunk/lib/Lex/PPMacroExpansion.cpp<br>
>     cfe/trunk/lib/Lex/TokenLexer.cpp<br>
>     cfe/trunk/test/Preprocessor/microsoft-ext.c<br>
><br>
> Modified: cfe/trunk/include/clang/Lex/Token.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Token.h?rev=184968&r1=184967&r2=184968&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Token.h?rev=184968&r1=184967&r2=184968&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/include/clang/Lex/Token.h (original)<br>
> +++ cfe/trunk/include/clang/Lex/Token.h Wed Jun 26 12:16:08 2013<br>
> @@ -77,7 +77,8 @@ public:<br>
>      NeedsCleaning = 0x08,  // Contained an escaped newline or trigraph.<br>
>      LeadingEmptyMacro = 0x10, // Empty macro exists before this token.<br>
>      HasUDSuffix = 0x20,    // This string or character literal has a ud-suffix.<br>
> -    HasUCN = 0x40          // This identifier contains a UCN.<br>
> +    HasUCN = 0x40,         // This identifier contains a UCN.<br>
> +    IgnoredComma = 0x80,   // This comma is not a macro argument separator (MS).<br>
<br>
</div></div>Hi Reid,<br>
<br>
Clang complains:<br>
<br>
warning: commas at the end of enumerator lists are a C++11 extension<br>
[-Wc++11-extensions]<br>
<br>
Dmitri<br>
<br>
--<br>
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if<br>
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <<a href="mailto:gribozavr@gmail.com">gribozavr@gmail.com</a>>*/<br>
<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>