On Wed, May 28, 2014 at 06:35:29PM +0000, Regan, Brian (EPC COE) wrote: > Agree result is the same - just in a non-compliant-ey type of way. No, this is completely compliant. A conforming program can't observe the difference. This is the same as if you said that int foo (void) { return 2 + 3; } must actually perform addition or unsigned char c; long long int bar (void) { return c + 4; } sign extension (if int is wider than unsigned char, even if long long int is wider than int, the compiler knows c + 4 is correctly sign extended and can e.g. zero extend). Jakub