From c22c07ba290fdb25c481b47566c17fdaa880c99e Mon Sep 17 00:00:00 2001 From: Fotis Panagiotopoulos Date: Thu, 13 Oct 2022 12:19:27 +0300 Subject: [PATCH] Minor fix in UBSan. --- mm/ubsan/ubsan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/ubsan/ubsan.c b/mm/ubsan/ubsan.c index c7f0f2462f7..ec90555dd78 100644 --- a/mm/ubsan/ubsan.c +++ b/mm/ubsan/ubsan.c @@ -157,11 +157,11 @@ static int64_t get_signed_val(FAR struct type_descriptor *type, { if (is_inline_int(type)) { - unsigned extra_bits = sizeof(int64_t) * 8 - type_bit_width(type); - uint64_t mask = (1llu << extra_bits) - 1; + unsigned bits = type_bit_width(type); + uint64_t mask = (1llu << bits) - 1; uint64_t ret = (uint64_t)val & mask; - return (int64_t)(((ret & (1llu << (extra_bits - 1))) != 0) ? + return (int64_t)(((ret & (1llu << (bits - 1))) != 0) ? ret | ~mask : ret); }