<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>