From 3131aecf9fc8b34a22ebf797412496c4baf18c68 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 28 Nov 2022 14:12:55 -0700 Subject: [PATCH] [array/hash] Fix asan issue ../src/hb-algs.hh:240:43: runtime error: reference binding to misaligned address 0x7ffe91a08b0e for type 'const unsigned int', which requires 4 byte alignment --- src/hb-array.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hb-array.hh b/src/hb-array.hh index c89bb3c6a..8758558c8 100644 --- a/src/hb-array.hh +++ b/src/hb-array.hh @@ -453,7 +453,7 @@ inline uint32_t hb_array_t::hash () const ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; for (; i + 4 <= this->length; i += 4) - current = current * 31 + hb_hash (((packed_uint32_t *) &this->arrayZ[i])->v); + current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v); #endif for (; i < this->length; i++) @@ -471,7 +471,7 @@ inline uint32_t hb_array_t::hash () const ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; for (; i + 4 <= this->length; i += 4) - current = current * 31 + hb_hash (((packed_uint32_t *) &this->arrayZ[i])->v); + current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v); #endif for (; i < this->length; i++)