Hi,<br><br>In an attempt to bypass a buggy C++11 implementation in MSVC10, I am trying to build and patch libc++ to work with MSVC built Clang.<br><br>What are the plans to support MSVC system headers in Clang's internal headers? Can I "ignore" them when using MSVC-built Clang? The problem is this bit about NULL (and other things, most probably) in Clang's stddef.h:<br>
<br>#undef NULL<br>#ifdef __cplusplus<br>#undef __null  // VC++ hack.<br>#define NULL __null<br>#else<br>#define NULL ((void*)0)<br>#endif<br><br>This makes absolutely no sense, and makes NULL unusable:<br><br>In file included from C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\windows.h:155:<br>
In file included from C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\windef.h:177:<br>C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\winnt.h:14781:33: error:<br>      expected expression<br>    CallbackEnviron->Pool = NULL;<br>
                                ^<br><br>This is in a MSVC header, so the fix has to come from Clang side. (either I add ifndef _MSC_VER to every Clang header that conflicts, or some special steps need to be taken to ensure these conflicts are removed). I can go either way.<br>
<br>A second thing: on Windows, header search should be case insensitive, Microsoft likes calling windows.h Windows.h and other nice random capitalization in other headers. MinGW has plain windows.h, so the header search really needs to be case insensitive here.<br>
<br>Thanks!<br><br>Ruben<br><br>