http://llvm.org/bugs/show_bug.cgi?id=7796
Summary: Unconditional gnu extension usage in stddef.h breaks
VS2008 headers
Product: clang
Version: trunk
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P
Component: Headers
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
When using clang to compile a trivial C++ program using <iostream> in the
Visual Studio 2008 environment, clang/2.8/include/stddef.h unconditionally
#defines NULL to __null. This causes a problem in the VS2008 header <wchar.h>,
where the function
__inline int __CRTDECL mbsinit(_In_opt_ const mbstate_t *_P)
{return (_P == NULL || *_P == 0); }
expands to
__inline int mbsinit( const mbstate_t *_P)
{return (_P == || *_P == 0); }
Test case:
#include <iostream>
int main(int argc, char **argv)
{
cout << "Hello C++ world" << endl;
return 0;
}
Resulting error:
D:\Temp\llvm>clang++ -fno-exceptions test.cpp -ferror-limit=2
In file included from test.cpp:1:
In file included from c:\Program Files\VStudio 9.0\VC\include/iostream:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/istream:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/ostream:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/ios:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/xlocnum:9:
In file included from c:\Program Files\VStudio 9.0\VC\include/streambuf:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/xiosbase:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/xlocale:8:
In file included from c:\Program Files\VStudio 9.0\VC\include/stdexcept:7:
In file included from c:\Program Files\VStudio 9.0\VC\include/xstring:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/xmemory:9:
In file included from c:\Program Files\VStudio 9.0\VC\include/xutility:7:
In file included from c:\Program Files\VStudio 9.0\VC\include/utility:6:
In file included from c:\Program Files\VStudio 9.0\VC\include/iosfwd:8:
In file included from c:\Program Files\VStudio 9.0\VC\include/cwchar:13:
c:\Program Files\VStudio 9.0\VC\include/wchar.h(1209) : error: expected
expression
{return (_P == NULL || *_P == 0); }
^
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs