tools/source/misc/fix16.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
New commits: commit 15eb26d0f22c621f81086fc8d3c6525838adb426 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Thu Oct 31 15:26:22 2024 +0000 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Thu Oct 31 18:18:48 2024 +0100 ofz: Undefined-shift Change-Id: Ibb42de616566aabdf6596b7c45d0afab90118bc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175877 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> 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;