Open
Description
Bugzilla Link | 46207 |
Version | trunk |
OS | Windows NT |
Reporter | LLVM Bugzilla Contributor |
CC | @CaseyCarter,@zmodem |
Extended Description
The Universal CRT does not have a conforming complex.h
. The tgmath.h
header in Clang (https://github.com/llvm/llvm-project/blob/4cf5743b7784b2c2bff8be82e1a5cc37f8c68a36/clang/lib/Headers/tgmath.h) assumes a conforming complex.h and therefore cannot be compiled by clang-cl when building as C.
Repro:
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.7.0-pre.3.0
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
C:\Users\stwish\source>set "PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\Llvm\bin;%PATH%"
C:\Users\stwish\source>type tgmath_repro.c
#include <tgmath.h>
int main()
{
return 0;
}
C:\Users\stwish\source>clang-cl tgmath_repro.c -ferror-limit=1
In file included from tgmath_repro.c:1:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\Llvm\lib\clang\10.0.0\include\tgmath.h(72,50): error: passing
'_Complex float' to parameter of incompatible type '_Fcomplex' (aka 'struct _C_float_complex')
__tg_acos(float _Complex __x) {return cacosf(__x);}
^~~
C:\Program Files (x86)\Windows Kits\10\include\10.0.19620.0\ucrt\complex.h(98,50): note: passing argument to parameter '_Z' here
_ACRTIMP _Fcomplex __cdecl cacosf(_In_ _Fcomplex _Z);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 errors generated.