Closed
Description
#include <filesystem>
int main(int argc, char** argv) {
return argc;
}
$ 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 a8f3eba (current). Works when using commit 74fcb6a (July 2024). I'm running a bisect but that will take a while (compiling llvm takes 1+ hours on my box).