Thread overview
uint overflow behaviour
Sep 15, 2021
DLearner
Sep 15, 2021
rikki cattermole
Sep 15, 2021
DLearner
September 15, 2021

Please confirm that if the addition of two uint variables produces a result larger than can be held in a uint:

  1. This is a D-legal operation (however inadvisable!), with the D-defined result of wraparound;
  2. Emphasing 1. above: the result is not undefined, or an error (by the rules of D), or simply implementation-dependant (whether by compiler or chip).

Best regards

September 15, 2021
https://dlang.org/spec/expression.html#add_expressions

"7. If both operands are of integral types and an overflow or underflow occurs in the computation, wrapping will happen. For example, uint.max + 1 == uint.min, uint.min - 1 == uint.max, int.max + 1 == int.min, and int.min - 1 == int.max."
September 15, 2021

On Wednesday, 15 September 2021 at 10:08:13 UTC, DLearner wrote:

>

Please confirm that if the addition of two uint variables produces a result larger than can be held in a uint:

  1. This is a D-legal operation (however inadvisable!), with the D-defined result of wraparound;

Definition under point 7 here : https://dlang.org/spec/expression.html#add_expressions

And I wouldn’t say inadvisable. It’s defined and if you have a good reason to allow that, then you can do that.

>
  1. Emphasing 1. above: the result is not undefined, or an error (by the rules of D), or simply implementation-dependant (whether by compiler or chip).

Yes

-Steve

September 15, 2021

Thanks for the responses.