I am trying to understand the rational behind defining a signed overflow in C and C++ as undefined behavior. Presumably, this is to allow optimizations not otherwise possible. It is not clear to me, however, what those optimizations are.
I know that there is a C++20 proposal that would make signed integers in C++ more defined. At the time of this writing, however, this proposal also leaves a signed integer overflow as undefined.