From fcc7da12701c9ba75fe008c5709828fc7bc9c84c Mon Sep 17 00:00:00 2001 From: Alcaro Date: Wed, 31 Dec 2014 16:36:56 +0100 Subject: [PATCH] Fix a bunch of aliasing warnings. --- rarchdb/rmsgpack.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/rarchdb/rmsgpack.c b/rarchdb/rmsgpack.c index 7edcaed9dc..2dd19cd667 100644 --- a/rarchdb/rmsgpack.c +++ b/rarchdb/rmsgpack.c @@ -345,26 +345,29 @@ static int read_uint(int fd, uint64_t *out, size_t size) static int read_int(int fd, int64_t *out, size_t size) { - uint64_t tmp; - if(read(fd, &tmp, size) == -1) + uint8_t tmp8; + uint16_t tmp16; + uint32_t tmp32; + uint64_t tmp64; + if(read(fd, &tmp64, size) == -1) return -errno; switch(size) { case 1: - *out = *((int8_t*)(&tmp)); + *out = *((int8_t*)(&tmp64)); break; case 2: - tmp = betoht16(tmp); - *out = *((int16_t*)(&tmp)); + tmp16 = betoht16(tmp64); + *out = *((int16_t*)(&tmp16)); break; case 4: - tmp = betoht32(tmp); - *out = *((int32_t*)(&tmp)); + tmp32 = betoht32(tmp64); + *out = *((int32_t*)(&tmp32)); break; case 8: - tmp = betoht64(tmp); - *out = *((int64_t*)(&tmp)); + tmp64 = betoht64(tmp64); + *out = *((int64_t*)(&tmp64)); break; } return 0;