[cfe-dev] clang compiling complex reports err
rjmccall at apple.com
Tue Jan 4 17:34:00 PST 2011
On Jan 4, 2011, at 5:21 PM, Douglas Gregor wrote:
> On Jan 4, 2011, at 5:08 PM, John McCall wrote:
>> On Jan 4, 2011, at 1:44 AM, Francois Pichet wrote:
>>> 2011/1/4 <way_lzl at sina.com>
>>> No, _Complex is used in MSVC's math.h.
>>> line 135: _CRTIMP double __cdecl _cabs(__in struct _complex _Complex);
>>> Ok that's in Visual Studio 2005. It was changed in MSVC 2008 to not use _Complex as parameter name.
>>> Then if I use math.h with Clang on windows, what should I do?
>>> Either you submit a patch to fix it yourself or you can submit a PR and wait for someone else to fix it.
>>> Otherwise use VS 2008.
>> _Complex should really be a C99-only keyword. If we did that, then you could compile as C89 without a problem.
> GCC accepts _Complex as a keyword in C++ mode. We could turn that off in Microsoft C++ mode, of course.
I meant C99 as "not in C89", because IIRC complex numbers were added in C99; but it looks like GCC treats _Complex as a keyword even in -std=c89, and it's probably best to emulate that.
It definitely sounds like _Complex shouldn't be a keyword in VS2005 mode.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev