Support for MS keyword __ptr32.

Hello Clang, Doug,

Find attached a patch that adds support for MS keyword __ptr32, please can you review. This is my first patch and I did create it using svn diff on a Windows system, is it correctly formatted please (CRLF etc)?
This patch resolves problems parsing windows.h where BaseTsd.h includes a macro that defines POINTER_32. This is on a Win 7 x64 VS 2010 platform using the following command line (supplied by Francois Pichet who has done outstanding work on Windows support to date);

“clang -cc1 -v -fcxx-exceptions -fdelayed-template-parsing -fms-extensions -std=c++0x -I “C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include” -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include” -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" -Wno-invalid-token-paste -D_MSC_VER=1600 -nobuiltininc -DSECURITY_WIN32 -DWIN32 -DWSMAN_API_VERSION_1_0 -w -D_MSC_FULL_VER=160040219 -D_MSC_EXTENSIONS -D_NATIVE_NULLPTR_SUPPORTED -D_MT -D_DLL -fsyntax-only -fno-operator-names test.cpp
"

Would like to work on continued support for Windows but am unsure what is realistically achievable and where to start? Also, from Apple’s perspective, what are you looking for with regard to Windows Interop?
I guess my ideal endpoint would be full code generation using just Windows headers and libraries providing the option to replace the Windows compiler and linker thereby getting all the cool features that are constantly being added to clang, especially static analysis. Understand that there are issues linking primarily with name manglling, any work going on here? Then larger issues with loadable modules not being supported (this one I do not understand too well therefore have no idea if this can be resolved?)

Cheers,
Chris

__ptr32.patch (3.09 KB)

Hello Clang, Doug,

Find attached a patch that adds support for MS keyword __ptr32, please can
you review. This is my first patch and I did create it using svn diff on a
Windows system, is it correctly formatted please (CRLF etc)?
This patch resolves problems parsing windows.h where BaseTsd.h includes a
macro that defines POINTER_32. This is on a Win 7 x64 VS 2010 platform using
the following command line (supplied by Francois Pichet who has done
outstanding work on Windows support to date);

Hi, I committed in r138533
Watch out the tab and the 80 columns formatting. see:
http://llvm.org/docs/CodingStandards.html

Would like to work on continued support for Windows but am unsure what is
realistically achievable and where to start? Also, from Apple's perspective,
what are you looking for with regard to Windows Interop?
I guess my ideal endpoint would be full code generation using just Windows
headers and libraries providing the option to replace the Windows
compiler and linker thereby getting all the cool features that are
constantly being added to clang, especially static analysis. Understand that
there are issues linking primarily with name manglling, any work going on
here? Then larger issues with loadable modules not being supported (this one
I do not understand too well therefore have no idea if this can be
resolved?)

It is really up to you to contribute if you want to.
Personally, I am focusing on adding Microsoft C/C++ extensions to the
clang frontend with the goal of using the static analyzer on MSVC
projects.

Date: Wed, 24 Aug 2011 20:47:09 -0400
Subject: Re: [cfe-dev] Support for MS keyword __ptr32.
From: pichet2000@gmail.com
To: christopher_cudmore@hotmail.com
CC: cfe-dev@cs.uiuc.edu

Hello Clang, Doug,

Find attached a patch that adds support for MS keyword __ptr32, please can
you review. This is my first patch and I did create it using svn diff on a
Windows system, is it correctly formatted please (CRLF etc)?
This patch resolves problems parsing windows.h where BaseTsd.h includes a
macro that defines POINTER_32. This is on a Win 7 x64 VS 2010 platform using
the following command line (supplied by Francois Pichet who has done
outstanding work on Windows support to date);

Hi, I committed in r138533
Watch out the tab and the 80 columns formatting. see:
http://llvm.org/docs/CodingStandards.html

Thanks for the review, addition of testcase and committing so quick, much appreciated!

Would like to work on continued support for Windows but am unsure what is
realistically achievable and where to start? Also, from Apple’s perspective,
what are you looking for with regard to Windows Interop?
I guess my ideal endpoint would be full code generation using just Windows
headers and libraries providing the option to replace the Windows
compiler and linker thereby getting all the cool features that are
constantly being added to clang, especially static analysis. Understand that
there are issues linking primarily with name manglling, any work going on
here? Then larger issues with loadable modules not being supported (this one
I do not understand too well therefore have no idea if this can be
resolved?)

It is really up to you to contribute if you want to.
Personally, I am focusing on adding Microsoft C/C++ extensions to the
clang frontend with the goal of using the static analyzer on MSVC
projects.

Thanks again for the advice… It’s a hobby for me, my day job is Windows managed code and as I am far from a SME, cautious about what’s sensible development in this space.

–Chris

BTW, replace the word ‘Apple’s’ with ‘the communities’ in my initial mail, not looking for a corporate statement. Sorry about that!