Richard Kenner wrote: ]
Essentially, there are three choices: with -fwrapv, you must preseve wrapping semantics and do NONE of those optimizations; with -fno-wrapv, you can do ALL of them; in the default cause, a heuristic can be used that attempts to balance optimization quality against breakage of old code.
Right, and such heuristics are certainly appropriate when you have conflicting requirements, especially when both requirements a) do all the optimizations possible b) don't break existing code are both ill defined