diff --git a/mm/ubsan/ubsan.c b/mm/ubsan/ubsan.c index ec90555dd7..744117af17 100644 --- a/mm/ubsan/ubsan.c +++ b/mm/ubsan/ubsan.c @@ -159,7 +159,7 @@ static int64_t get_signed_val(FAR struct type_descriptor *type, { unsigned bits = type_bit_width(type); uint64_t mask = (1llu << bits) - 1; - uint64_t ret = (uint64_t)val & mask; + uint64_t ret = (uintptr_t)val & mask; return (int64_t)(((ret & (1llu << (bits - 1))) != 0) ? ret | ~mask : ret);