On 22 September 2017 at 18:35, Ben Peart <[email protected]> wrote:
> Add a new get_be64 macro to enable 64 bit endian conversions on memory
> that may or may not be aligned.
I needed this to compile and pass the tests with NO_UNALIGNED_LOADS.
Martin
diff --git a/compat/bswap.h b/compat/bswap.h
index 6b22c4621..9dc79bdf5 100644
--- a/compat/bswap.h
+++ b/compat/bswap.h
@@ -183,8 +183,8 @@ static inline uint32_t get_be32(const void *ptr)
static inline uint64_t get_be64(const void *ptr)
{
const unsigned char *p = ptr;
- return (uint64_t)get_be32(p[0]) << 32 |
- (uint64_t)get_be32(p[4]) << 0;
+ return (uint64_t)get_be32(p + 0) << 32 |
+ (uint64_t)get_be32(p + 4) << 0;
}
static inline void put_be32(void *ptr, uint32_t value)
--
2.14.1.727.g9ddaf86