On Wed, Nov 25, 2015 at 09:58:15AM +0100, Marc Glisse wrote: > I guess it got lost in my text, but if a user writes: > > unsigned diff = a - b; > if (b > a) { /* overflow */ ... } > else { ... } > > Your patch will not detect it. It seems that replacing x-y>x with y>x could
Sorry, already committed the patch (without incremental that hasn't been tested anyway). It is true that the patch does not detect this, but it is harder that way. What if it is if (b > a) ... // Huge amount of code r = a - b; ? Trying to emit the subtraction above the comparison would then very likely increase register preassure. So, I'd really prefer doing x-y>x to y>x only for single use. Jakub