Thread overview
uint overflow behaviour
Sep 15
DLearner
Sep 15
DLearner
September 15

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
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

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

Thanks for the responses.