> Note the interesting places in VRP where it assumes undefined signed > overflow is in compare_values -- we use the undefinedness to fold > comparisons.
Unfortunately, comparisons are the trickiest case because you have to be careful to avoid deleting a comparison that exists to see if overflow occured: this is perhaps the most common place where wrapping is assumed.