<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:steveire@gmail.com" title="Stephen Kelly <steveire@gmail.com>"> <span class="fn">Stephen Kelly</span></a>
</span> changed
<a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - clang-cl does not consider __m128 to be a struct type"
href="https://bugs.llvm.org/show_bug.cgi?id=28250">bug 28250</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">CC</td>
<td>
</td>
<td>steveire@gmail.com
</td>
</tr>
<tr>
<td style="text-align:right;">Status</td>
<td>NEW
</td>
<td>RESOLVED
</td>
</tr>
<tr>
<td style="text-align:right;">Resolution</td>
<td>---
</td>
<td>FIXED
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - clang-cl does not consider __m128 to be a struct type"
href="https://bugs.llvm.org/show_bug.cgi?id=28250#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - clang-cl does not consider __m128 to be a struct type"
href="https://bugs.llvm.org/show_bug.cgi?id=28250">bug 28250</a>
from <span class="vcard"><a class="email" href="mailto:steveire@gmail.com" title="Stephen Kelly <steveire@gmail.com>"> <span class="fn">Stephen Kelly</span></a>
</span></b>
<pre>FYI, newer Windows 10 SDKs (10.0.17134.0 and I didn't check others) are not
affected by this anymore.
$ type directx.cpp
#include <um/DirectXMath.h>
int main()
{
return 0;
}
$ cl.exe -I"c:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0"
directx.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
directx.cpp
Microsoft (R) Incremental Linker Version 14.14.26430.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:directx.exe
directx.obj
$ C:\dev\src\llvm\build\releaseprefix\msbuild-bin\CL.exe -I"c:\Program Files
(x86)\Windows Kits\10\Include\10.0.17134.0" directx.cpp
directx.cpp
$ C:\dev\src\llvm\build\releaseprefix\msbuild-bin\CL.exe -I"c:\Program Files
(x86)\Windows Kits\10\Include\10.0.10586.0" directx.cpp
directx.cpp
In file included from directx.cpp:2:
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(366,29): error: overloaded
'operator+' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator+ (FXMVECTOR V);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(367,29): error: overloaded
'operator-' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator- (FXMVECTOR V);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(369,29): error: overloaded
'operator+=' must have at least one parameter of class or enumeration type
XMVECTOR& XM_CALLCONV operator+= (XMVECTOR& V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(370,29): error: overloaded
'operator-=' must have at least one parameter of class or enumeration type
XMVECTOR& XM_CALLCONV operator-= (XMVECTOR& V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(371,29): error: overloaded
'operator*=' must have at least one parameter of class or enumeration type
XMVECTOR& XM_CALLCONV operator*= (XMVECTOR& V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(372,29): error: overloaded
'operator/=' must have at least one parameter of class or enumeration type
XMVECTOR& XM_CALLCONV operator/= (XMVECTOR& V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(374,13): error: overloaded
'operator*=' must have at least one parameter of class or enumeration type
XMVECTOR& operator*= (XMVECTOR& V, float S);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(375,13): error: overloaded
'operator/=' must have at least one parameter of class or enumeration type
XMVECTOR& operator/= (XMVECTOR& V, float S);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(377,29): error: overloaded
'operator+' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator+ (FXMVECTOR V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(378,29): error: overloaded
'operator-' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator- (FXMVECTOR V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(379,29): error: overloaded
'operator*' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator* (FXMVECTOR V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(380,29): error: overloaded
'operator/' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator/ (FXMVECTOR V1, FXMVECTOR V2);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(381,29): error: overloaded
'operator*' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator* (FXMVECTOR V, float S);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(382,29): error: overloaded
'operator*' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator* (float S, FXMVECTOR V);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(383,29): error: overloaded
'operator/' must have at least one parameter of class or enumeration type
XMVECTOR XM_CALLCONV operator/ (FXMVECTOR V, float S);
^
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(1506,105): warning: expression
result unused [-Wunused-value]
template<> inline XMVECTOR XM_CALLCONV
XMVectorPermute<0,1,2,3>(FXMVECTOR V1, FXMVECTOR V2) { (V2); return V1; }
^~
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h(1507,105): warning: expression
result unused [-Wunused-value]
template<> inline XMVECTOR XM_CALLCONV
XMVectorPermute<4,5,6,7>(FXMVECTOR V1, FXMVECTOR V2) { (V1); return V2; }
^~
In file included from directx.cpp:2:
In file included from c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMath.h:1902:
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMathVector.inl(412,13): error: member
reference base type 'DirectX::FXMVECTOR' (aka 'const __m128') is not a
structure or union
return V.m128_f32[i];
~^~~~~~~~~
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMathVector.inl(482,11): error: member
reference base type 'DirectX::FXMVECTOR' (aka 'const __m128') is not a
structure or union
*f = V.m128_f32[i];
~^~~~~~~~~
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMathVector.inl(560,13): error: member
reference base type 'DirectX::FXMVECTOR' (aka 'const __m128') is not a
structure or union
return V.m128_u32[i];
~^~~~~~~~~
c:\Program Files (x86)\Windows
Kits\10\Include\10.0.10586.0\um/DirectXMathVector.inl(631,11): error: member
reference base type 'DirectX::FXMVECTOR' (aka 'const __m128') is not a
structure or union
*x = V.m128_u32[i];
~^~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 warnings and 20 errors generated.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>