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;