Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/BLAKE2/BLAKE2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormjvk <29380294+mjvk@users.noreply.github.com>2018-05-09 13:47:06 +0300
committerGitHub <noreply@github.com>2018-05-09 13:47:06 +0300
commitcf068aafd605d9c5b77c5dfd65b2963a51c145a1 (patch)
tree49c5957ad9ca8c1adc7d550aa15b653d36642419
parentca4c89314abff54e3806b44e4a08164f8204f09a (diff)
Update cast of load16
Bitwise operations promote the cast to uint16_t to int. So to be consistent, first cast to uint to keep unsignedness and prevent implicit promotion. Then cast back to uint16_t after all bitwise operations are completed. This prevents compiler warnings, unneccessary casts and in the case of right shifting (not the case here) unexpected behaviour.
-rw-r--r--sse/blake2-impl.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sse/blake2-impl.h b/sse/blake2-impl.h
index 5dff7fc..c1df82e 100644
--- a/sse/blake2-impl.h
+++ b/sse/blake2-impl.h
@@ -72,8 +72,8 @@ static BLAKE2_INLINE uint16_t load16( const void *src )
return w;
#else
const uint8_t *p = ( const uint8_t * )src;
- return (( uint16_t )( p[0] ) << 0) |
- (( uint16_t )( p[1] ) << 8) ;
+ return ( uint16_t )((( uint32_t )( p[0] ) << 0) |
+ (( uint32_t )( p[1] ) << 8));
#endif
}