[cfe-commits] r131051 - in /cfe/trunk: lib/Frontend/InitPreprocessor.cpp test/Parser/MicrosoftExtensions.cpp

Douglas Gregor dgregor at apple.com
Mon May 9 12:05:10 PDT 2011


On May 7, 2011, at 10:47 AM, Francois Pichet wrote:

> Author: fpichet
> Date: Sat May  7 12:47:38 2011
> New Revision: 131051
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=131051&view=rev
> Log:
> Temporary preprocessor hack to get around the Microsoft __identifier(x) extension.
> http://msdn.microsoft.com/en-us/library/hzc8ytsz(v=VS.100).aspx
> 
> Microsoft doc claims this is a C++/CLI feature but it is really always enabled.
> This removes 2 error when parsing MFC code with clang.

> Modified:
>    cfe/trunk/lib/Frontend/InitPreprocessor.cpp
>    cfe/trunk/test/Parser/MicrosoftExtensions.cpp
> 
> Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=131051&r1=131050&r2=131051&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original)
> +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Sat May  7 12:47:38 2011
> @@ -343,6 +343,7 @@
>       // Since we define wchar_t in C++ mode.
>       Builder.defineMacro("_WCHAR_T_DEFINED");
>       Builder.defineMacro("_NATIVE_WCHAR_T_DEFINED");
> +      Builder.append("#define __identifier(x) x");
>       Builder.append("class type_info;");
>     }

Can you put

	// FIXME: Support Microsoft's __identifier extension in the lexer

> 

in there, so we don't forget about this little hack?

	- Doug

> 
> Modified: cfe/trunk/test/Parser/MicrosoftExtensions.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/MicrosoftExtensions.cpp?rev=131051&r1=131050&r2=131051&view=diff
> ==============================================================================
> --- cfe/trunk/test/Parser/MicrosoftExtensions.cpp (original)
> +++ cfe/trunk/test/Parser/MicrosoftExtensions.cpp Sat May  7 12:47:38 2011
> @@ -207,3 +207,6 @@
> __if_not_exists(IF_EXISTS::Type_not) {
>   int var244;
> }
> +
> +int __identifier(generic) = 3;
> +
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list