What I had in mind, is the fact that with defined overflow you could
unconditionally perform the operation, and then observe the result to decide if
overflow have in fact happened. For example, following pattern to check if
adding 100 to an integer 'a' overflows would be valid:
int a = ...;
if (a + 100 < a) overflow
So this is one of cases where wrapping behaviour could potentially fix bugs in
existing applications. Obviously, rewriting this to work with overflow is
trivial if you are already aware of undefined behaviour that could occur.