Hi, I would like to parse a windows source. Using clang/llvm and preferably under Linux.
I'm using: std::vector<std::string> arguments; arguments.push_back("-fms-compatibility"); arguments.push_back("-fms-extensions"); arguments.push_back("-Wno-error=invalid-token-paste"); arguments.push_back("-fdelayed-template-parsing"); arguments.push_back("-DWIN32"); arguments.push_back("-D_WIN32"); arguments.push_back("-D_WINDOWS"); arguments.push_back("-D_DEBUG"); arguments.push_back("-D_CRTDBG_MAP_ALLOC"); arguments.push_back("-D_UNICODE"); arguments.push_back("-DUNICODE"); arguments.push_back("-D_AFXDLL"); arguments.push_back("-D_DLL"); arguments.push_back("-fmsc-version=1600"); arguments.push_back("-fcxx-exceptions"); arguments.push_back("-fexceptions"); arguments.push_back("-D_M_AMD64=1"); arguments.push_back("-D_M_X64=1"); arguments.push_back("-I."); arguments.push_back("-isystem=/C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include"); arguments.push_back("-I/C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include"); arguments.push_back("-isystem=/C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/crt/src"); arguments.push_back("-I/C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/crt/src"); arguments.push_back("-I/C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/atlmfc/include"); arguments.push_back("-isystem=/C/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Include"); arguments.push_back("-I/C/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Include"); // buf contains source to parse llvm::Twine code(buf); FindNamedClassAction *fnca = new FindNamedClassAction(root); clang::tooling::runToolOnCodeWithArgs(fnca, code, arguments, llvm::Twine(fname)); This gives: In file included from /C/Source.cpp:12: In file included from /C/StdAfx.h:2: In file included from /C/01StdAfx.h:47: In file included from /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/atlmfc/include/afx.h:54: In file included from /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/new.h:22: In file included from /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/new:6: In file included from /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/exception:7: In file included from /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/xstddef:6: In file included from /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/yvals.h:6: /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/crtdefs.h:402:29: error: typedef redefinition with different types ('unsigned int' vs 'unsigned long') typedef _W64 unsigned int size_t; ^ /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/crtdefs.h:543:2: warning: __declspec attribute 'dllimport' is not supported [-Wignored-attributes] _CRTIMP void __cdecl _invalid_parameter(_In_opt_z_ const wchar_t *, _In_opt_z_ const wchar_t *, _In_opt_z_ const wchar_t *, unsigned int, uintptr_t); ^ /C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include/crtdefs.h:18:28: note: expanded from macro '_CRTIMP' #define _CRTIMP __declspec(dllimport) ^ [skipped a bit] /C/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Include/winnt.h:455:9: error: unknown type name 'PNZWCH' typedef PNZWCH PNZTCH; ^ How can I fix this? Is it a missing compile-flag? Folkert van Heusden -- Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com _______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users