Index: llvm/include/llvm/ADT/iterator.h =================================================================== --- llvm/include/llvm/ADT/iterator.h +++ llvm/include/llvm/ADT/iterator.h @@ -114,6 +114,13 @@ return !static_cast(this)->operator==(RHS); } + bool operator<(const DerivedT &RHS) const { + static_assert( + IsRandomAccess, + "Relational operators are only defined for random access iterators."); + return !static_cast(this)->operator>(RHS) && + !static_cast(this)->operator==(RHS); + } bool operator>(const DerivedT &RHS) const { static_assert( IsRandomAccess,