https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95279
--- Comment #12 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #10) > 1 + (size_t) -1 give 0 It wasn't obvious to me that the operation was supposed to happen in some C/C++ type (they don't say which one) or in a mathematical, infinite-precision sense. After all, they write 0≤i−j≤n which shouldn't be interpreted as C++ code. But you have more experience with reading these things, I believe you.