https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120325
--- Comment #2 from Jonathan Wakely ---
I'll comment on github too, but I think the problem is that you're using
-DCMAKE_CXX_STANDARD=20
It looks to me like LLVM's iterator facade is completely incompatible with
C++20. The operator overloads like operator- and operator+ should be
constrained using
requires BaseT::IsRandomAccess and operator-- should be constrained with
requires BaseT::IsBirectional
If the facade provides those operators, then obviously the iterator is going to
look like it supports those operations when concepts like
std::random_access_iterator are checked.
So until LLVM is made C++20-compatible, don't try to build it as C++20.