From 0679a4a2ad7467006d3e30dea1b2747d9f0ae4bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20O=2E=20Sel=C3=A5sdal?= Date: Sat, 16 Nov 2013 04:35:34 +0100 Subject: [PATCH] Fix undefined integer behavior due to promotion rules --- include/ucore/pack.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/ucore/pack.h b/include/ucore/pack.h index 9c9b742..658ed44 100644 --- a/include/ucore/pack.h +++ b/include/ucore/pack.h @@ -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];