← Back to context

Comment by arestor

10 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 >=.