Comment by arestor

8 years ago

It's C. If you have an array, you may only compare to one element behind the last. Everything else is undefined behavior. So a compiler may just "optimize" your >= to ==.

No it won't. It's using pointers, not array indices. The compiler has no possible way of knowing that `pe` is the one-past-the-end address.

  • It's still UB. The array could potentially be at the end of the address space...

    • Well yes, it could, but that's not really an argument for saying that Ragel using == is just as good as using >=.