Fix undefined integer behavior due to promotion rules
This commit is contained in:
@@ -91,7 +91,7 @@ static UC_INLINE uint32_t uc_unpack_32_le(const uint8_t *r)
|
||||
v = r[0];
|
||||
v |= r[1] << 8;
|
||||
v |= r[2] << 16;
|
||||
v |= r[3] << 24;
|
||||
v |= (uint32_t)r[3] << 24;
|
||||
|
||||
return v;
|
||||
}
|
||||
@@ -204,7 +204,7 @@ static UC_INLINE uint32_t uc_unpack_32_be(const uint8_t *r)
|
||||
{
|
||||
uint32_t v;
|
||||
|
||||
v = r[0] << 24;
|
||||
v = (uint32_t)r[0] << 24;
|
||||
v |= r[1] << 16;
|
||||
v |= r[2] << 8;
|
||||
v |= r[3];
|
||||
|
||||
Reference in New Issue
Block a user