From f8115a81b19f0d98e6656bc44a9949a743832d72 Mon Sep 17 00:00:00 2001 From: Nathaniel Filardo Date: Tue, 26 Nov 2019 18:01:23 +0000 Subject: [PATCH] pagemap: cast uintptr_t to size_t before bit math Not strictly necessary, but makes the CHERI compiler happier to see that we're using a decidedly integral type rather than a possibly tagged quantity. --- src/mem/pagemap.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mem/pagemap.h b/src/mem/pagemap.h index 8526c09..94f5c1c 100644 --- a/src/mem/pagemap.h +++ b/src/mem/pagemap.h @@ -191,7 +191,7 @@ namespace snmalloc return std::pair(nullptr, 0); shift -= BITS_PER_INDEX_LEVEL; - ix = (addr >> shift) & ENTRIES_MASK; + ix = (static_cast(addr) >> shift) & ENTRIES_MASK; e = &value->entries[ix]; if constexpr (INDEX_LEVELS == 1) @@ -211,7 +211,7 @@ namespace snmalloc return std::pair(nullptr, 0); shift -= BITS_FOR_LEAF; - ix = (addr >> shift) & LEAF_MASK; + ix = (static_cast(addr) >> shift) & LEAF_MASK; return std::pair(leaf, ix); }