From f1784aee04d274c6b396e97b9147df6dae641259 Mon Sep 17 00:00:00 2001 From: James Zern Date: Mon, 22 May 2017 03:11:03 -0700 Subject: [PATCH] near_lossless,FindClosestDiscretized: use unsigned ops quiets undefined sanitizer warnings of the form: left shift of 128 by 24 places cannot be represented in type 'int' Change-Id: I8a389f2ac9238513517180f302f759425eeb7262 --- src/enc/near_lossless_enc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/enc/near_lossless_enc.c b/src/enc/near_lossless_enc.c index c0e71b3e..307528cc 100644 --- a/src/enc/near_lossless_enc.c +++ b/src/enc/near_lossless_enc.c @@ -26,9 +26,9 @@ // Quantizes the value up or down to a multiple of 1<> 1) + ((a >> bits) & 1); +static uint32_t FindClosestDiscretized(uint32_t a, int bits) { + const uint32_t mask = (1 << bits) - 1; + const uint32_t biased = a + (mask >> 1) + ((a >> bits) & 1); assert(bits > 0); if (biased > 0xff) return 0xff; return biased & ~mask;