On Mon, Jul 29, 2013 at 03:30:35PM +1000, caf@xxxxxxxxxxx wrote:...Quoting "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>:
...>
>Note that the C standard considers the cast from signed to
>unsigned to be implementation-defined, see 6.3.1.3p3.
Don't worry, the case from signed to unsigned is actually well-defined -
the relevant part is 6.3.1.3p2 (in C99):
>Otherwise, if the new type is unsigned, the value is converted by
>repeatedly adding or subtracting one more than the maximum value that
>can be represented in the new type until the value is in the range of
>the new type.
Yep, but we are going in the other direction, from unsigned to signed.