Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93926f65 authored by Yi Kong's avatar Yi Kong
Browse files

Turn off integer overflow UBSAN checks for hash functions

These functions intentionally overflows integers. The upcoming compiler
update, clang-r522817, will start complaining about these overflows.

Test: boot with new compiler
Bug: 325934863
Change-Id: I5e83a55e880f4e78a7de5a7b01ee99e64f601ca7
parent 315a0f14
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ uint64_t shiftMix(uint64_t val) {
    return val ^ (val >> 47);
}

__attribute__((no_sanitize("unsigned-integer-overflow")))
uint64_t hash64Len16(uint64_t u, uint64_t v) {
    constexpr uint64_t kMul = 0x9ddfea08eb382d69;
    uint64_t a = (u ^ v) * kMul;
@@ -57,6 +58,7 @@ uint64_t hash64Len16(uint64_t u, uint64_t v) {
    return b;
}

__attribute__((no_sanitize("unsigned-integer-overflow")))
uint64_t hash64Len0To16(const char* s, uint64_t len) {
    constexpr uint64_t k2 = 0x9ae16a3b2f90404f;
    constexpr uint64_t k3 = 0xc949d7c7509e6557;