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

Reply via email to