<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/121881>121881</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clanc-cl no longer able to interpret microsoft headers
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
memory-thrasher
</td>
</tr>
</table>
<pre>
```c++
#include <filesystem>
int main(int argc, char** argv) {
return argc;
}
```
```bash
$ clang-cl -DWIN32 --target=x86_64-pc-windows-msvc -fuse-ld=lld /winsdkdir /home/sid/clones/xwin/splat/sdk /vctoolsdir /home/sid/clones/xwin/splat/crt -I/home/sid/clones/xwin/external/include /MT /O2 /std:c++20 -Diswindows -c selfdep.cpp -o selfdep.o -fms-compatibility
In file included from selfdep.cpp:1:
In file included from /home/sid/clones/xwin/splat/crt/include/filesystem:15:
/home/sid/clones/xwin/splat/crt/include/chrono(1998,18): error: satisfaction of constraint 'three_way_comparable_with<sys_seconds, sys_time<_Duration> >' depends on itself
1998 | requires three_way_comparable_with<sys_seconds, sys_time<_Duration>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sid/clones/xwin/splat/crt/include/chrono(1998,18): note: while substituting template arguments into constraint expression here
1998 | requires three_way_comparable_with<sys_seconds, sys_time<_Duration>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sid/clones/xwin/splat/crt/include/concepts(223,11): note: while checking constraint satisfaction for template 'operator<=><std::chrono::duration<long long>>' required here
223 | { __t < __u } -> _Boolean_testable;
| ^
/home/sid/clones/xwin/splat/crt/include/concepts(223,11): note: while substituting deduced template arguments into function template 'operator<=>' [with _Duration = std::chrono::duration<long long>]
/home/sid/clones/xwin/splat/crt/include/concepts(223,7): note: in instantiation of requirement here
223 | { __t < __u } -> _Boolean_testable;
| ^~~~~~~~~~
/home/sid/clones/xwin/splat/crt/include/concepts(222,25): note: while substituting template arguments into constraint expression here
222 | concept _Half_ordered = requires(const remove_reference_t<_Ty1>& __t, const remove_reference_t<_Ty2>& __u) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
223 | { __t < __u } -> _Boolean_testable;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224 | { __t > __u } -> _Boolean_testable;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225 | { __t <= __u } -> _Boolean_testable;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226 | { __t >= __u } -> _Boolean_testable;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
227 | };
| ~
/home/sid/clones/xwin/splat/crt/include/compare(298,71): note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
298 | concept three_way_comparable = _Half_equality_comparable<_Ty, _Ty> && _Half_ordered<_Ty, _Ty>
| ^
/home/sid/clones/xwin/splat/crt/include/compare(305,5): note: while substituting template arguments into constraint expression here
305 | three_way_comparable<_Ty1, _Cat> && three_way_comparable<_Ty2, _Cat>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sid/clones/xwin/splat/crt/include/chrono(1998,18): note: while checking the satisfaction of concept 'three_way_comparable_with<std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<long long>>, std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<long long>>, std::partial_ordering>' requested here
1998 | requires three_way_comparable_with<sys_seconds, sys_time<_Duration>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sid/clones/xwin/splat/crt/include/chrono(1998,18): note: while substituting template arguments into constraint expression here
1998 | requires three_way_comparable_with<sys_seconds, sys_time<_Duration>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sid/clones/xwin/splat/crt/include/chrono(2004,29): note: while checking constraint satisfaction for template 'operator<=><std::chrono::duration<long long>>' required here
2004 | return _Left.date() <=> _Right.date();
| ^~~
/home/sid/clones/xwin/splat/crt/include/chrono(2004,29): note: while substituting deduced template arguments into function template 'operator<=>' [with _Duration = std::chrono::duration<long long>]
[trimmed, only showing first error but there are plenty more like that one]
```
Cross-compiling from linux x64 to windows x64 using xwin splat.
Compiled locally from main, commit a8f3ebaf11c3745e5123054776eb71755d16f2f9 (current). Works when using commit 74fcb6aafddd56df1bd6d6841b2e0f289f8e54b0 (July 2024). I'm running a bisect but that will take a while (compiling llvm takes 1+ hours on my box).
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWEtv4zgS_jX0paBAoizLPvjg2G1sL_YBLAaYo0CRJYsbitSQVBxf9rcvSrLd7t6kZz2TDAaYMQI9wlIV66sHP1KEoA8Wcc2KR1bsZmKIrfPrDjvnT0lsvQgt-lnt1GnNFun0Jxl_pL90w3iurTSDQmD5ttEGwylE7Fj-iUbTjbYROqEt40t6FP4gGd-CbIVnfMP4hv71zPgKWEkKATzGwdtJMh9tlDu6XoxPeq-vtQjtOJE5SCPsIZEGkt2Pn_-Rc0iSKPwBI8t3L8tFtZgnvUyO2ip3DEkXniUkzRAwMYrlO2MUML4_ahvUk9KeXlrXIeP7oBXje2mcxcD4_uVI_uxDb0Sku3oi2WcZnTPhni-lj5B8_jlpfInorTCM769Y8_3ff6DrPzldQ1Qs35yjwlNIdjqc3YREQkDTKOwfZN9D4q6vDpKmC4l0XS-irrXR8cTSzWcLFEc421LQeNfd6mD5JmP55k3RO7z_4hLj-9vs2WTFZOKXKpOtd9YxvsxWqyXj22zJ-IrlG0DvnaeHIKIOjZBROwuuAelsiF5QljJextYjVkdxqkZ8vKgNVkcdW5ZvwylUAaWzKlAu02vUHbJ8W-0GL0ghyz8B1QAvQWGPVgVwFnQkGCnLaVbAyi1cfh5_GrTHAL_e8FR7k1oywYpP__nFv48IgXUR6X5sKXnCUIeo4xC1PUDEjrQhlf_QoY0BtI3uNjj40nsMgaLWosc_DJrOSuxjYHzJeU5wZq_CKVuUTwTlDWRfpXrj_BeYGS9dj15Eqokty3ejx9upoVBPmWI4PqsrKFvj7AHocgaIlxfI1TUowHl-DQorH6GqIi0SAFU1ACt3kFCVVI_OGRS2ihgihWdq-l8B_hvA9lUWKlSDRPVmNjaDnbD8Po68BFY8UrbBNaOA5Tu4C95i957ul994ry1oG6KwUYtLJzyHkhz-iGi-ezVwxre8-KjmApzzcepnm1D9RZimcl4hpTvF89JuGF-OusBj556x8tigRyuxitRVfjhlY1osCLyRBX1XmF-Fh1t-9C6N6Hsd6r1C_f-aA87nr9j7dK89-t1hs5hQ_OIfRfLDPFy85uH9Fu_0sTz7uPufmf-q2qOVFKn0xnW9_LajMr4MT7rvqeZySvKIL2OtQS3kU_RCkl8wBISkuRRlch1LjO40cfYUIrFVBGEMmRh9Oq_0l2J8bYEfa3KqUvxpEMRrb0an4qLyoxvxNL4Yy-y2rL8VetcV6QJfnhaMbz-uceXplOOvYXTpR-ThVsQbHN6W5jfSd7aij6eRV94TW3yN24_Z8nPE_rV1mThh1Ttt41sS06alksbJp5FJ3sue3vjkt7XcCx-1MFMF6EnkzOswxBti94dg23_uXT4CTZ6mcyJrq9_31oWmOQJ2Pouq_oZNfFAiUtceudjFIFT_0of2duxVwvvx2P3e9y_FY_S661BRujprThBad6TJNtqHOB3LQD3Qio6eZozQG7TxBJ3zCEY_IcRWRHAWzzq_PhHcehem0yxtRr3edWC0HV7gZTEnKnE5EqPXIZAMYQ8j8g-kYfwWFRgnhTGnScV0ekmMo-t0BLFscqxFk2UyL-cFFhnP02Jelgusy6wsCpUtGt6siAXJwXu0kfHVA_zo_FOAY4v2bPusr5w3sl4I0SilioVqslot1GI5z2qOacOXq2aJxbxOSd9fB3MCnvL5qPEz42UHfrCW1AmodUAZzxiKCEdtDETxhCDOSTLuTy74GPPcjcMBMsYfoXWDH0-puhPU7oVMzNQ6V6t8JWa4zsp8wXm6KFazdr0q-aosF6tFvhRpLsWcyyJrpFiWShayUTO95ikv0iwt0zxPi9VDWqS1Wq2WXEqV1zJn8xQ7oc0DTePB-cNMhzDgOuPZcpnNjKjRhPFQmnOLRxhHGees2M38mj5K6uEQ2Dw1OsTwRU3U0eBaGmFlIg1YNyYiehiZYXRUAeh7jxE6Lb0LrqFdrlDow2zwZt3G2AdKab5nfH_QsR3qB-k6xvdk5HxLeu_-jXKsVZoaVfJ57s9r_t8AAAD__6UYu8o">