Knifflig. Wenn Du überhaupt eine Chance haben will, mußt Du wahrscheinlich Deine ganzen Rechnungen in elementare Schritte aufteilen und nach jeden Schritt prüfen. Beispiel:
Delphi-Quellcode:
var
x,y: int64;
begin
x := $7fffffffabcd1234;
y := x + $7890abcd; // Overflow erkennbar
y := ((x+ $7890abcd) - $7890abcd) + 1; //**
end;
In ** ist nach der Zuweisung
kein Overflow erkennbar, effektiv ist das ja y := x +1. Aber es sind ja eigentlich
zwei Overflows aufgetreten.