[cfe-dev] math.h on Windows
john.thompson.jtsoftware at gmail.com
Thu Oct 15 09:44:45 CDT 2009
I'm terribly sorry! In builtins.c I accidentally commited some experimental
changes I added after making the patch, making that test fail. I've
commited the fix.
On Wed, Oct 14, 2009 at 8:40 PM, John Thompson <
john.thompson.jtsoftware at gmail.com> wrote:
>> _Complex is currently a keyword in every mode. We could make it only be a
>> keyword in C99 or GNU mode, then make sure that neither of these modes is
>> turned on by default when Clang is built with VC++. That probably makes
>> sense, since VC++ doesn't support C99 or many GNU extensions anyway.
>> We can always force tests into specific modes (turning off Microsoft
>> extensions, turning on GNU extensions or C99, whatever), rather than trying
>> to work around problems that are unlikely to show up in code that compiles
>> with VC++.
> How would you collectively force the tests?
> I'm kinda feeling that since we're down to just 21 failing tests,
> and _Complex isn't a problem with VC 9.0, we could probably punt on it for
> now, and see how it goes with the rest of the tests. But let me know if you
> want me to persue this.
>> What is the actual issue with the redefinition of wchar_t? Are they
>> creating a typedef of wchar_t in their headers? Does the VC++ compiler
>> implicitly define _WCHAR_T_DEFINED?
> This occurs in a few headers:
> #ifndef _WCHAR_T_DEFINED
> typedef unsigned short wchar_t;
> #define _WCHAR_T_DEFINED
> The enclosed wchar_t_fix2.patch seems to fix both the wchar_t issue, and
> another one I ran into with VC++ headers. I was side-tracked a bit with
> errors on wchar_t I didn't understand, until I realized that wchar_t was
> only a C++ keyword.
> I also ran into some new errors with the VC 9.0 headers on some #pragma's.
> Defining _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES avoids them, though it's a
> bit of a hack. This symbol prevents the definition of some macros, some of
> which have errors, for example on __pragma statements like this:
> This is a Microsoft extension not currently supported, right? It seems
> kind of useful for macros.
> You mentioned that the Targets.cpp was probably not the right place for the
> defines, so I moved them to InitPreprocessor.cpp. Is this the right place?
> Also, could someone look at the enclosed patch for stdint.h? This also
> fixes some failing tests, since VC++ doesn't have stdint.h. Who is point on
> I can check in the patches you approve.
John.Thompson.JTSoftware at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev