From 15eb26d0f22c621f81086fc8d3c6525838adb426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 31 Oct 2024 15:26:22 +0000 Subject: [PATCH] ofz: Undefined-shift MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ibb42de616566aabdf6596b7c45d0afab90118bc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175877 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- tools/source/misc/fix16.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/source/misc/fix16.cxx b/tools/source/misc/fix16.cxx index e465c16c5dc1..d13f7a30447e 100644 --- a/tools/source/misc/fix16.cxx +++ b/tools/source/misc/fix16.cxx @@ -119,8 +119,11 @@ fix16_t fix16_div(fix16_t a, fix16_t b) int shift = std::countl_zero(remainder); if (shift > bit_pos) shift = bit_pos; - remainder = (remainder & mask(32 - shift)) << shift; - bit_pos -= shift; + if (shift) + { + remainder = (remainder & mask(32 - shift)) << shift; + bit_pos -= shift; + } uint32_t div = remainder / divider; remainder = remainder % divider;