When I use Visual Studio 2012 to build Clang trunk 3.3svn, when I set a good environment to start using it to compile C + + source code, there are many unbearable error. As follows: ty:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\type_ traits:1820: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:156:21: error: too many arguments provided to function-like macro invocation _VARIADIC_EXPAND_0X(_CLASS_RESULT_OF_PF_OPT_0X, , , , ) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:656:22: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_2X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:599:21: note: expanded from macro '_VARIADIC_EXPAND_25' _VARIADIC_EXPAND_5(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:543:50: note: expanded from macro '_VARIADIC_EXPAND_5' #define _VARIADIC_EXPAND_5(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:154:19: note: expanded from macro '_CLASS_RESULT_OF_PF_OPT_0X' __cdecl, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:949:9: note: macro '_VARIADIC_CALL_OPT_X1' defined here #define _VARIADIC_CALL_OPT_X1(FUNC, X1, X2, X3, X4, \ ^ In file included from cp.cpp:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\iostr eam:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\istre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ostre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ios:6 : In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xlocn um:10: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\strea mbuf:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xiosb ase:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xloca le:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\stdex cept:7: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstri ng:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xmemo ry0:9: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xutil ity:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\utili ty:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\type_ traits:1820: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:224:21: error: too many arguments provided to function-like macro invocation _VARIADIC_EXPAND_0X(_CLASS_RESULT_OF_PMF_OPT_0X, , , , ) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:655:21: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_1(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:531:50: note: expanded from macro '_VARIADIC_EXPAND_1' #define _VARIADIC_EXPAND_1(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:222:22: note: expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X' __thiscall, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:982:9: note: macro '_VARIADIC_CALL_OPT_X2' defined here #define _VARIADIC_CALL_OPT_X2(FUNC, X1, X2, X3, X4, \ ^ In file included from cp.cpp:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\iostr eam:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\istre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ostre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ios:6 : In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xlocn um:10: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\strea mbuf:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xiosb ase:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xloca le:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\stdex cept:7: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstri ng:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xmemo ry0:9: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xutil ity:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\utili ty:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\type_ traits:1820: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:224:21: error: too many arguments provided to function-like macro invocation _VARIADIC_EXPAND_0X(_CLASS_RESULT_OF_PMF_OPT_0X, , , , ) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:656:22: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_2X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:596:21: note: expanded from macro '_VARIADIC_EXPAND_25' _VARIADIC_EXPAND_2(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:534:50: note: expanded from macro '_VARIADIC_EXPAND_2' #define _VARIADIC_EXPAND_2(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:222:22: note: expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X' __thiscall, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:982:9: note: macro '_VARIADIC_CALL_OPT_X2' defined here #define _VARIADIC_CALL_OPT_X2(FUNC, X1, X2, X3, X4, \ ^ In file included from cp.cpp:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\iostr eam:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\istre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ostre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ios:6 : In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xlocn um:10: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\strea mbuf:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xiosb ase:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xloca le:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\stdex cept:7: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstri ng:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xmemo ry0:9: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xutil ity:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\utili ty:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\type_ traits:1820: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:224:21: error: unknown type name '_VARIADIC_CALL_OPT_X2' _VARIADIC_EXPAND_0X(_CLASS_RESULT_OF_PMF_OPT_0X, , , , ) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:655:21: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_1(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:531:50: note: expanded from macro '_VARIADIC_EXPAND_1' #define _VARIADIC_EXPAND_1(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:220:2: note: expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X' _VARIADIC_CALL_OPT_X2(_CLASS_RESULT_OF_PMF, \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:224:21: error: too many arguments provided to function-like macro invocation C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:656:22: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_2X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:597:21: note: expanded from macro '_VARIADIC_EXPAND_25' _VARIADIC_EXPAND_3(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:537:50: note: expanded from macro '_VARIADIC_EXPAND_3' #define _VARIADIC_EXPAND_3(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:222:22: note: expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X' __thiscall, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:982:9: note: macro '_VARIADIC_CALL_OPT_X2' defined here #define _VARIADIC_CALL_OPT_X2(FUNC, X1, X2, X3, X4, \ ^ In file included from cp.cpp:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\iostr eam:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\istre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ostre am:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\ios:6 : In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xlocn um:10: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\strea mbuf:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xiosb ase:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xloca le:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\stdex cept:7: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstri ng:6: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xmemo ry0:9: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xutil ity:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\utili ty:8: In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\type_ traits:1820: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:224:21: error: expected ';' after top level declarator _VARIADIC_EXPAND_0X(_CLASS_RESULT_OF_PMF_OPT_0X, , , , ) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:656:22: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_2X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:597:21: note: expanded from macro '_VARIADIC_EXPAND_25' _VARIADIC_EXPAND_3(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:537:50: note: expanded from macro '_VARIADIC_EXPAND_3' #define _VARIADIC_EXPAND_3(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:220:2: note: expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X' _VARIADIC_CALL_OPT_X2(_CLASS_RESULT_OF_PMF, \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:224:21: error: too many arguments provided to function-like macro invocation C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:652:22: note: expanded from macro '_VARIADIC_EXPAND_0X' _VARIADIC_EXPAND_1X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:656:22: note: expanded from macro '_VARIADIC_EXPAND_1X' _VARIADIC_EXPAND_2X(FUNC, X1, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:598:21: note: expanded from macro '_VARIADIC_EXPAND_25' _VARIADIC_EXPAND_4(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:540:50: note: expanded from macro '_VARIADIC_EXPAND_4' #define _VARIADIC_EXPAND_4(FUNC, X1, X2, X3, X4) \ ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xrefwrap:222:22: note: expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X' __thiscall, X2, X3, X4) ^ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xstddef:982:9: note: macro '_VARIADIC_CALL_OPT_X2' defined here #define _VARIADIC_CALL_OPT_X2(FUNC, X1, X2, X3, X4, \ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated.
I can replicate this issue too. This is on a Windows 7 64 bit machine with Visual Studio 2012.
Windows 8 x64 How do I solve the problem (In reply to comment #1) > I can replicate this issue too. This is on a Windows 7 64 bit machine with > Visual Studio 2012.
Does this look like a dup of PR13657?
It could be a difference in the preprocessor like PR17122.
This was fixed by r184968, I believe, thanks to João Matos and Will Wilson.