Coverage Report

Created: 2025-10-13 07:08

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/dropbear/libtommath/bn_mp_count_bits.c
Line
Count
Source
1
#include "tommath_private.h"
2
#ifdef BN_MP_COUNT_BITS_C
3
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
4
/* SPDX-License-Identifier: Unlicense */
5
6
/* returns the number of bits in an int */
7
int mp_count_bits(const mp_int *a)
8
860k
{
9
860k
   int     r;
10
860k
   mp_digit q;
11
12
   /* shortcut */
13
860k
   if (MP_IS_ZERO(a)) {
14
1.59k
      return 0;
15
1.59k
   }
16
17
   /* get number of digits and add that */
18
858k
   r = (a->used - 1) * MP_DIGIT_BIT;
19
20
   /* take the last digit and count the bits in it */
21
858k
   q = a->dp[a->used - 1];
22
17.3M
   while (q > 0u) {
23
16.5M
      ++r;
24
16.5M
      q >>= 1u;
25
16.5M
   }
26
858k
   return r;
27
860k
}
28
#endif