On 22 September 2017 at 18:35, Ben Peart <benpeart@xxxxxxxxxxxxx> 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