diff --git a/buffer/prs_u16.c b/buffer/prs_u16.c index 4e17e9d..1e2b819 100644 --- a/buffer/prs_u16.c +++ b/buffer/prs_u16.c @@ -1,7 +1,8 @@ #include "parse.h" uint16_t prs_u16(struct bytestream* bs) { - return bs_get(bs) | (bs_get(bs) << 8); + unsigned char c = bs_get(bs); + return c | (bs_get(bs) << 8); } #ifdef UNITTEST diff --git a/buffer/prs_u16_big.c b/buffer/prs_u16_big.c index e02ead2..8ef66ec 100644 --- a/buffer/prs_u16_big.c +++ b/buffer/prs_u16_big.c @@ -1,7 +1,8 @@ #include "parse.h" uint16_t prs_u16_big(struct bytestream* bs) { - return (bs_get(bs) << 8) | bs_get(bs); + uint16_t x = bs_get(bs) << 8; + return x | bs_get(bs); } #ifdef UNITTEST diff --git a/buffer/prs_u32.c b/buffer/prs_u32.c index 555bb14..f687de5 100644 --- a/buffer/prs_u32.c +++ b/buffer/prs_u32.c @@ -1,7 +1,10 @@ #include "parse.h" uint32_t prs_u32(struct bytestream* bs) { - return bs_get(bs) | (bs_get(bs) << 8) | (bs_get(bs) << 16) | (bs_get(bs) << 24); + uint32_t x = bs_get(bs); + x |= bs_get(bs) << 8; + x |= bs_get(bs) << 16; + return x | (bs_get(bs) << 24); } #ifdef UNITTEST diff --git a/buffer/prs_u32_big.c b/buffer/prs_u32_big.c index 900071e..237e96b 100644 --- a/buffer/prs_u32_big.c +++ b/buffer/prs_u32_big.c @@ -1,7 +1,10 @@ #include "parse.h" uint32_t prs_u32_big(struct bytestream* bs) { - return (bs_get(bs) << 24) | (bs_get(bs) << 16) | (bs_get(bs) << 8) | bs_get(bs); + uint32_t x = bs_get(bs) << 24; + x |= bs_get(bs) << 16; + x |= bs_get(bs) << 8; + return x | bs_get(bs); } #ifdef UNITTEST