Fix a bunch of aliasing warnings.
This commit is contained in:
parent
85fb0b784c
commit
fcc7da1270
|
@ -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)
|
static int read_int(int fd, int64_t *out, size_t size)
|
||||||
{
|
{
|
||||||
uint64_t tmp;
|
uint8_t tmp8;
|
||||||
if(read(fd, &tmp, size) == -1)
|
uint16_t tmp16;
|
||||||
|
uint32_t tmp32;
|
||||||
|
uint64_t tmp64;
|
||||||
|
if(read(fd, &tmp64, size) == -1)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
switch(size)
|
switch(size)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
*out = *((int8_t*)(&tmp));
|
*out = *((int8_t*)(&tmp64));
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
tmp = betoht16(tmp);
|
tmp16 = betoht16(tmp64);
|
||||||
*out = *((int16_t*)(&tmp));
|
*out = *((int16_t*)(&tmp16));
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
tmp = betoht32(tmp);
|
tmp32 = betoht32(tmp64);
|
||||||
*out = *((int32_t*)(&tmp));
|
*out = *((int32_t*)(&tmp32));
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
tmp = betoht64(tmp);
|
tmp64 = betoht64(tmp64);
|
||||||
*out = *((int64_t*)(&tmp));
|
*out = *((int64_t*)(&tmp64));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue