Coverage Report

Created: 2025-07-11 06:59

/src/dovecot/src/lib/bits.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef BITS_H
2
#define BITS_H
3
4
#define UINT64_SUM_OVERFLOWS(a, b) \
5
  (a > (uint64_t)-1 - b)
6
7
#define BIT(n) (1u << (n))
8
9
/* These expressions make it easy to ensure that bit test expressions
10
   are boolean in order to satisfy the in-house -Wstrict-bool. */
11
/* ((val & bits) == 0) is very common */
12
#define HAS_NO_BITS(val,bits) (((val) & (bits)) == 0)
13
/* ((val & bits) != 0) is even more common */
14
/* Note - illogical behaviour if bits==0, fixing that requires potential
15
   multiple evaluation, but it's a corner case that should never occur. */
16
0
#define HAS_ANY_BITS(val,bits) (((val) & (bits)) != 0)
17
/* ((val & bits) == bits) is uncommon */
18
#define HAS_ALL_BITS(val,bits) ((~(val) & (bits)) == 0)
19
20
/* negation implemented without using the subtraction operator
21
   ~(x - 1) = 1 + ~x these are equivalent by -(-x) == ~(~(x)) == x */
22
31.1k
#define UNSIGNED_MINUS(x) (1 + ~(x))
23
24
/* Returns x, such that x is the smallest power of 2 >= num. */
25
size_t nearest_power(size_t num) ATTR_CONST;
26
27
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
28
29
/* Returns TRUE if 2^x=num, i.e. if num has only a single bit set to 1. */
30
static inline bool ATTR_CONST
31
bits_is_power_of_two(uint64_t num)
32
0
{
33
0
  return __builtin_popcountll(num) == 1;
34
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_is_power_of_two
Unexecuted instantiation: message-parser.c:bits_is_power_of_two
Unexecuted instantiation: message-size.c:bits_is_power_of_two
Unexecuted instantiation: rfc2231-parser.c:bits_is_power_of_two
Unexecuted instantiation: rfc822-parser.c:bits_is_power_of_two
Unexecuted instantiation: message-header-parser.c:bits_is_power_of_two
Unexecuted instantiation: charset-utf8.c:bits_is_power_of_two
Unexecuted instantiation: charset-iconv.c:bits_is_power_of_two
Unexecuted instantiation: fuzzer.c:bits_is_power_of_two
Unexecuted instantiation: test-istream.c:bits_is_power_of_two
Unexecuted instantiation: array.c:bits_is_power_of_two
Unexecuted instantiation: buffer.c:bits_is_power_of_two
Unexecuted instantiation: data-stack.c:bits_is_power_of_two
Unexecuted instantiation: event-log.c:bits_is_power_of_two
Unexecuted instantiation: failures.c:bits_is_power_of_two
Unexecuted instantiation: fd-util.c:bits_is_power_of_two
Unexecuted instantiation: hostpid.c:bits_is_power_of_two
Unexecuted instantiation: imem.c:bits_is_power_of_two
Unexecuted instantiation: iostream-pump.c:bits_is_power_of_two
Unexecuted instantiation: istream.c:bits_is_power_of_two
Unexecuted instantiation: istream-data.c:bits_is_power_of_two
Unexecuted instantiation: ioloop.c:bits_is_power_of_two
Unexecuted instantiation: ioloop-notify-inotify.c:bits_is_power_of_two
Unexecuted instantiation: ioloop-epoll.c:bits_is_power_of_two
Unexecuted instantiation: lib.c:bits_is_power_of_two
Unexecuted instantiation: lib-event.c:bits_is_power_of_two
Unexecuted instantiation: lib-signals.c:bits_is_power_of_two
Unexecuted instantiation: memarea.c:bits_is_power_of_two
Unexecuted instantiation: mempool.c:bits_is_power_of_two
Unexecuted instantiation: mempool-alloconly.c:bits_is_power_of_two
Unexecuted instantiation: mempool-datastack.c:bits_is_power_of_two
Unexecuted instantiation: mempool-system.c:bits_is_power_of_two
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_is_power_of_two
Unexecuted instantiation: net.c:bits_is_power_of_two
Unexecuted instantiation: ostream.c:bits_is_power_of_two
Unexecuted instantiation: ostream-file.c:bits_is_power_of_two
Unexecuted instantiation: path-util.c:bits_is_power_of_two
Unexecuted instantiation: printf-format-fix.c:bits_is_power_of_two
Unexecuted instantiation: process-title.c:bits_is_power_of_two
Unexecuted instantiation: priorityq.c:bits_is_power_of_two
Unexecuted instantiation: punycode.c:bits_is_power_of_two
Unexecuted instantiation: randgen.c:bits_is_power_of_two
Unexecuted instantiation: rand.c:bits_is_power_of_two
Unexecuted instantiation: restrict-access.c:bits_is_power_of_two
Unexecuted instantiation: safe-memset.c:bits_is_power_of_two
Unexecuted instantiation: sendfile-util.c:bits_is_power_of_two
Unexecuted instantiation: sleep.c:bits_is_power_of_two
Unexecuted instantiation: str.c:bits_is_power_of_two
Unexecuted instantiation: strescape.c:bits_is_power_of_two
Unexecuted instantiation: strfuncs.c:bits_is_power_of_two
Unexecuted instantiation: strnum.c:bits_is_power_of_two
Unexecuted instantiation: time-util.c:bits_is_power_of_two
Unexecuted instantiation: unichar.c:bits_is_power_of_two
Unexecuted instantiation: write-full.c:bits_is_power_of_two
Unexecuted instantiation: backtrace-string.c:bits_is_power_of_two
Unexecuted instantiation: bits.c:bits_is_power_of_two
Unexecuted instantiation: env-util.c:bits_is_power_of_two
Unexecuted instantiation: event-filter.c:bits_is_power_of_two
Unexecuted instantiation: event-filter-lexer.c:bits_is_power_of_two
Unexecuted instantiation: event-filter-parser.c:bits_is_power_of_two
Unexecuted instantiation: hash.c:bits_is_power_of_two
Unexecuted instantiation: ipwd.c:bits_is_power_of_two
Unexecuted instantiation: iostream.c:bits_is_power_of_two
Unexecuted instantiation: istream-file.c:bits_is_power_of_two
Unexecuted instantiation: ioloop-iolist.c:bits_is_power_of_two
Unexecuted instantiation: ioloop-notify-fd.c:bits_is_power_of_two
Unexecuted instantiation: primes.c:bits_is_power_of_two
Unexecuted instantiation: str-parse.c:bits_is_power_of_two
Unexecuted instantiation: wildcard-match.c:bits_is_power_of_two
35
36
static inline unsigned int ATTR_CONST
37
bits_required32(uint32_t num)
38
0
{
39
0
  return num == 0 ? 0 : 32 - __builtin_clz(num);
40
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_required32
Unexecuted instantiation: message-parser.c:bits_required32
Unexecuted instantiation: message-size.c:bits_required32
Unexecuted instantiation: rfc2231-parser.c:bits_required32
Unexecuted instantiation: rfc822-parser.c:bits_required32
Unexecuted instantiation: message-header-parser.c:bits_required32
Unexecuted instantiation: charset-utf8.c:bits_required32
Unexecuted instantiation: charset-iconv.c:bits_required32
Unexecuted instantiation: fuzzer.c:bits_required32
Unexecuted instantiation: test-istream.c:bits_required32
Unexecuted instantiation: array.c:bits_required32
Unexecuted instantiation: buffer.c:bits_required32
Unexecuted instantiation: data-stack.c:bits_required32
Unexecuted instantiation: event-log.c:bits_required32
Unexecuted instantiation: failures.c:bits_required32
Unexecuted instantiation: fd-util.c:bits_required32
Unexecuted instantiation: hostpid.c:bits_required32
Unexecuted instantiation: imem.c:bits_required32
Unexecuted instantiation: iostream-pump.c:bits_required32
Unexecuted instantiation: istream.c:bits_required32
Unexecuted instantiation: istream-data.c:bits_required32
Unexecuted instantiation: ioloop.c:bits_required32
Unexecuted instantiation: ioloop-notify-inotify.c:bits_required32
Unexecuted instantiation: ioloop-epoll.c:bits_required32
Unexecuted instantiation: lib.c:bits_required32
Unexecuted instantiation: lib-event.c:bits_required32
Unexecuted instantiation: lib-signals.c:bits_required32
Unexecuted instantiation: memarea.c:bits_required32
Unexecuted instantiation: mempool.c:bits_required32
Unexecuted instantiation: mempool-alloconly.c:bits_required32
Unexecuted instantiation: mempool-datastack.c:bits_required32
Unexecuted instantiation: mempool-system.c:bits_required32
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_required32
Unexecuted instantiation: net.c:bits_required32
Unexecuted instantiation: ostream.c:bits_required32
Unexecuted instantiation: ostream-file.c:bits_required32
Unexecuted instantiation: path-util.c:bits_required32
Unexecuted instantiation: printf-format-fix.c:bits_required32
Unexecuted instantiation: process-title.c:bits_required32
Unexecuted instantiation: priorityq.c:bits_required32
Unexecuted instantiation: punycode.c:bits_required32
Unexecuted instantiation: randgen.c:bits_required32
Unexecuted instantiation: rand.c:bits_required32
Unexecuted instantiation: restrict-access.c:bits_required32
Unexecuted instantiation: safe-memset.c:bits_required32
Unexecuted instantiation: sendfile-util.c:bits_required32
Unexecuted instantiation: sleep.c:bits_required32
Unexecuted instantiation: str.c:bits_required32
Unexecuted instantiation: strescape.c:bits_required32
Unexecuted instantiation: strfuncs.c:bits_required32
Unexecuted instantiation: strnum.c:bits_required32
Unexecuted instantiation: time-util.c:bits_required32
Unexecuted instantiation: unichar.c:bits_required32
Unexecuted instantiation: write-full.c:bits_required32
Unexecuted instantiation: backtrace-string.c:bits_required32
Unexecuted instantiation: bits.c:bits_required32
Unexecuted instantiation: env-util.c:bits_required32
Unexecuted instantiation: event-filter.c:bits_required32
Unexecuted instantiation: event-filter-lexer.c:bits_required32
Unexecuted instantiation: event-filter-parser.c:bits_required32
Unexecuted instantiation: hash.c:bits_required32
Unexecuted instantiation: ipwd.c:bits_required32
Unexecuted instantiation: iostream.c:bits_required32
Unexecuted instantiation: istream-file.c:bits_required32
Unexecuted instantiation: ioloop-iolist.c:bits_required32
Unexecuted instantiation: ioloop-notify-fd.c:bits_required32
Unexecuted instantiation: primes.c:bits_required32
Unexecuted instantiation: str-parse.c:bits_required32
Unexecuted instantiation: wildcard-match.c:bits_required32
41
static inline unsigned int ATTR_CONST
42
0
bits_required8(uint8_t num)   { return bits_required32(num); }
Unexecuted instantiation: fuzz-message-parser.c:bits_required8
Unexecuted instantiation: message-parser.c:bits_required8
Unexecuted instantiation: message-size.c:bits_required8
Unexecuted instantiation: rfc2231-parser.c:bits_required8
Unexecuted instantiation: rfc822-parser.c:bits_required8
Unexecuted instantiation: message-header-parser.c:bits_required8
Unexecuted instantiation: charset-utf8.c:bits_required8
Unexecuted instantiation: charset-iconv.c:bits_required8
Unexecuted instantiation: fuzzer.c:bits_required8
Unexecuted instantiation: test-istream.c:bits_required8
Unexecuted instantiation: array.c:bits_required8
Unexecuted instantiation: buffer.c:bits_required8
Unexecuted instantiation: data-stack.c:bits_required8
Unexecuted instantiation: event-log.c:bits_required8
Unexecuted instantiation: failures.c:bits_required8
Unexecuted instantiation: fd-util.c:bits_required8
Unexecuted instantiation: hostpid.c:bits_required8
Unexecuted instantiation: imem.c:bits_required8
Unexecuted instantiation: iostream-pump.c:bits_required8
Unexecuted instantiation: istream.c:bits_required8
Unexecuted instantiation: istream-data.c:bits_required8
Unexecuted instantiation: ioloop.c:bits_required8
Unexecuted instantiation: ioloop-notify-inotify.c:bits_required8
Unexecuted instantiation: ioloop-epoll.c:bits_required8
Unexecuted instantiation: lib.c:bits_required8
Unexecuted instantiation: lib-event.c:bits_required8
Unexecuted instantiation: lib-signals.c:bits_required8
Unexecuted instantiation: memarea.c:bits_required8
Unexecuted instantiation: mempool.c:bits_required8
Unexecuted instantiation: mempool-alloconly.c:bits_required8
Unexecuted instantiation: mempool-datastack.c:bits_required8
Unexecuted instantiation: mempool-system.c:bits_required8
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_required8
Unexecuted instantiation: net.c:bits_required8
Unexecuted instantiation: ostream.c:bits_required8
Unexecuted instantiation: ostream-file.c:bits_required8
Unexecuted instantiation: path-util.c:bits_required8
Unexecuted instantiation: printf-format-fix.c:bits_required8
Unexecuted instantiation: process-title.c:bits_required8
Unexecuted instantiation: priorityq.c:bits_required8
Unexecuted instantiation: punycode.c:bits_required8
Unexecuted instantiation: randgen.c:bits_required8
Unexecuted instantiation: rand.c:bits_required8
Unexecuted instantiation: restrict-access.c:bits_required8
Unexecuted instantiation: safe-memset.c:bits_required8
Unexecuted instantiation: sendfile-util.c:bits_required8
Unexecuted instantiation: sleep.c:bits_required8
Unexecuted instantiation: str.c:bits_required8
Unexecuted instantiation: strescape.c:bits_required8
Unexecuted instantiation: strfuncs.c:bits_required8
Unexecuted instantiation: strnum.c:bits_required8
Unexecuted instantiation: time-util.c:bits_required8
Unexecuted instantiation: unichar.c:bits_required8
Unexecuted instantiation: write-full.c:bits_required8
Unexecuted instantiation: backtrace-string.c:bits_required8
Unexecuted instantiation: bits.c:bits_required8
Unexecuted instantiation: env-util.c:bits_required8
Unexecuted instantiation: event-filter.c:bits_required8
Unexecuted instantiation: event-filter-lexer.c:bits_required8
Unexecuted instantiation: event-filter-parser.c:bits_required8
Unexecuted instantiation: hash.c:bits_required8
Unexecuted instantiation: ipwd.c:bits_required8
Unexecuted instantiation: iostream.c:bits_required8
Unexecuted instantiation: istream-file.c:bits_required8
Unexecuted instantiation: ioloop-iolist.c:bits_required8
Unexecuted instantiation: ioloop-notify-fd.c:bits_required8
Unexecuted instantiation: primes.c:bits_required8
Unexecuted instantiation: str-parse.c:bits_required8
Unexecuted instantiation: wildcard-match.c:bits_required8
43
44
static inline unsigned int ATTR_CONST
45
0
bits_required16(uint16_t num) { return bits_required32(num); }
Unexecuted instantiation: fuzz-message-parser.c:bits_required16
Unexecuted instantiation: message-parser.c:bits_required16
Unexecuted instantiation: message-size.c:bits_required16
Unexecuted instantiation: rfc2231-parser.c:bits_required16
Unexecuted instantiation: rfc822-parser.c:bits_required16
Unexecuted instantiation: message-header-parser.c:bits_required16
Unexecuted instantiation: charset-utf8.c:bits_required16
Unexecuted instantiation: charset-iconv.c:bits_required16
Unexecuted instantiation: fuzzer.c:bits_required16
Unexecuted instantiation: test-istream.c:bits_required16
Unexecuted instantiation: array.c:bits_required16
Unexecuted instantiation: buffer.c:bits_required16
Unexecuted instantiation: data-stack.c:bits_required16
Unexecuted instantiation: event-log.c:bits_required16
Unexecuted instantiation: failures.c:bits_required16
Unexecuted instantiation: fd-util.c:bits_required16
Unexecuted instantiation: hostpid.c:bits_required16
Unexecuted instantiation: imem.c:bits_required16
Unexecuted instantiation: iostream-pump.c:bits_required16
Unexecuted instantiation: istream.c:bits_required16
Unexecuted instantiation: istream-data.c:bits_required16
Unexecuted instantiation: ioloop.c:bits_required16
Unexecuted instantiation: ioloop-notify-inotify.c:bits_required16
Unexecuted instantiation: ioloop-epoll.c:bits_required16
Unexecuted instantiation: lib.c:bits_required16
Unexecuted instantiation: lib-event.c:bits_required16
Unexecuted instantiation: lib-signals.c:bits_required16
Unexecuted instantiation: memarea.c:bits_required16
Unexecuted instantiation: mempool.c:bits_required16
Unexecuted instantiation: mempool-alloconly.c:bits_required16
Unexecuted instantiation: mempool-datastack.c:bits_required16
Unexecuted instantiation: mempool-system.c:bits_required16
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_required16
Unexecuted instantiation: net.c:bits_required16
Unexecuted instantiation: ostream.c:bits_required16
Unexecuted instantiation: ostream-file.c:bits_required16
Unexecuted instantiation: path-util.c:bits_required16
Unexecuted instantiation: printf-format-fix.c:bits_required16
Unexecuted instantiation: process-title.c:bits_required16
Unexecuted instantiation: priorityq.c:bits_required16
Unexecuted instantiation: punycode.c:bits_required16
Unexecuted instantiation: randgen.c:bits_required16
Unexecuted instantiation: rand.c:bits_required16
Unexecuted instantiation: restrict-access.c:bits_required16
Unexecuted instantiation: safe-memset.c:bits_required16
Unexecuted instantiation: sendfile-util.c:bits_required16
Unexecuted instantiation: sleep.c:bits_required16
Unexecuted instantiation: str.c:bits_required16
Unexecuted instantiation: strescape.c:bits_required16
Unexecuted instantiation: strfuncs.c:bits_required16
Unexecuted instantiation: strnum.c:bits_required16
Unexecuted instantiation: time-util.c:bits_required16
Unexecuted instantiation: unichar.c:bits_required16
Unexecuted instantiation: write-full.c:bits_required16
Unexecuted instantiation: backtrace-string.c:bits_required16
Unexecuted instantiation: bits.c:bits_required16
Unexecuted instantiation: env-util.c:bits_required16
Unexecuted instantiation: event-filter.c:bits_required16
Unexecuted instantiation: event-filter-lexer.c:bits_required16
Unexecuted instantiation: event-filter-parser.c:bits_required16
Unexecuted instantiation: hash.c:bits_required16
Unexecuted instantiation: ipwd.c:bits_required16
Unexecuted instantiation: iostream.c:bits_required16
Unexecuted instantiation: istream-file.c:bits_required16
Unexecuted instantiation: ioloop-iolist.c:bits_required16
Unexecuted instantiation: ioloop-notify-fd.c:bits_required16
Unexecuted instantiation: primes.c:bits_required16
Unexecuted instantiation: str-parse.c:bits_required16
Unexecuted instantiation: wildcard-match.c:bits_required16
46
47
static inline unsigned int ATTR_CONST
48
bits_required64(uint64_t num)
49
56.9k
{
50
56.9k
  return num == 0 ? 0 : 64 - __builtin_clzll(num);
51
56.9k
}
Unexecuted instantiation: fuzz-message-parser.c:bits_required64
Unexecuted instantiation: message-parser.c:bits_required64
Unexecuted instantiation: message-size.c:bits_required64
Unexecuted instantiation: rfc2231-parser.c:bits_required64
Unexecuted instantiation: rfc822-parser.c:bits_required64
Unexecuted instantiation: message-header-parser.c:bits_required64
Unexecuted instantiation: charset-utf8.c:bits_required64
Unexecuted instantiation: charset-iconv.c:bits_required64
Unexecuted instantiation: fuzzer.c:bits_required64
Unexecuted instantiation: test-istream.c:bits_required64
Unexecuted instantiation: array.c:bits_required64
Unexecuted instantiation: buffer.c:bits_required64
Unexecuted instantiation: data-stack.c:bits_required64
Unexecuted instantiation: event-log.c:bits_required64
Unexecuted instantiation: failures.c:bits_required64
Unexecuted instantiation: fd-util.c:bits_required64
Unexecuted instantiation: hostpid.c:bits_required64
Unexecuted instantiation: imem.c:bits_required64
Unexecuted instantiation: iostream-pump.c:bits_required64
Unexecuted instantiation: istream.c:bits_required64
Unexecuted instantiation: istream-data.c:bits_required64
Unexecuted instantiation: ioloop.c:bits_required64
Unexecuted instantiation: ioloop-notify-inotify.c:bits_required64
Unexecuted instantiation: ioloop-epoll.c:bits_required64
Unexecuted instantiation: lib.c:bits_required64
Unexecuted instantiation: lib-event.c:bits_required64
Unexecuted instantiation: lib-signals.c:bits_required64
Unexecuted instantiation: memarea.c:bits_required64
Unexecuted instantiation: mempool.c:bits_required64
Unexecuted instantiation: mempool-alloconly.c:bits_required64
Unexecuted instantiation: mempool-datastack.c:bits_required64
Unexecuted instantiation: mempool-system.c:bits_required64
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_required64
Unexecuted instantiation: net.c:bits_required64
Unexecuted instantiation: ostream.c:bits_required64
Unexecuted instantiation: ostream-file.c:bits_required64
Unexecuted instantiation: path-util.c:bits_required64
Unexecuted instantiation: printf-format-fix.c:bits_required64
Unexecuted instantiation: process-title.c:bits_required64
Unexecuted instantiation: priorityq.c:bits_required64
Unexecuted instantiation: punycode.c:bits_required64
Unexecuted instantiation: randgen.c:bits_required64
Unexecuted instantiation: rand.c:bits_required64
Unexecuted instantiation: restrict-access.c:bits_required64
Unexecuted instantiation: safe-memset.c:bits_required64
Unexecuted instantiation: sendfile-util.c:bits_required64
Unexecuted instantiation: sleep.c:bits_required64
Unexecuted instantiation: str.c:bits_required64
Unexecuted instantiation: strescape.c:bits_required64
Unexecuted instantiation: strfuncs.c:bits_required64
Unexecuted instantiation: strnum.c:bits_required64
Unexecuted instantiation: time-util.c:bits_required64
Unexecuted instantiation: unichar.c:bits_required64
Unexecuted instantiation: write-full.c:bits_required64
Unexecuted instantiation: backtrace-string.c:bits_required64
bits.c:bits_required64
Line
Count
Source
49
56.9k
{
50
56.9k
  return num == 0 ? 0 : 64 - __builtin_clzll(num);
51
56.9k
}
Unexecuted instantiation: env-util.c:bits_required64
Unexecuted instantiation: event-filter.c:bits_required64
Unexecuted instantiation: event-filter-lexer.c:bits_required64
Unexecuted instantiation: event-filter-parser.c:bits_required64
Unexecuted instantiation: hash.c:bits_required64
Unexecuted instantiation: ipwd.c:bits_required64
Unexecuted instantiation: iostream.c:bits_required64
Unexecuted instantiation: istream-file.c:bits_required64
Unexecuted instantiation: ioloop-iolist.c:bits_required64
Unexecuted instantiation: ioloop-notify-fd.c:bits_required64
Unexecuted instantiation: primes.c:bits_required64
Unexecuted instantiation: str-parse.c:bits_required64
Unexecuted instantiation: wildcard-match.c:bits_required64
52
53
#else
54
55
/* Returns TRUE if 2^x=num, i.e. if num has only a single bit set to 1. */
56
static inline bool ATTR_CONST
57
bits_is_power_of_two(uint64_t num)
58
{
59
  return num != 0 && (num & (num + ~0ULL)) == 0;
60
}
61
62
unsigned int bits_required8(uint8_t num) ATTR_CONST;
63
64
static inline
65
unsigned int bits_required16(uint16_t num)
66
{
67
  return (num <= 0xff) ? bits_required8(num)
68
    : 8 + bits_required8(num >> 8);
69
}
70
static inline
71
unsigned int bits_required32(uint32_t num)
72
{
73
  return (num <= 0xffff) ? bits_required16(num)
74
    : 16 + bits_required16(num >> 16);
75
}
76
static inline
77
unsigned int bits_required64(uint64_t num)
78
{
79
  return (num <= 0xffffffff) ? bits_required32(num)
80
    : 32 + bits_required32(num >> 32);
81
}
82
83
#endif
84
85
static inline uint64_t ATTR_NO_SANITIZE_INTEGER
86
  ATTR_NO_SANITIZE_IMPLICIT_CONVERSION
87
bits_rotl64(uint64_t num, unsigned int count)
88
0
{
89
0
  const unsigned int mask = CHAR_BIT*sizeof(num) - 1;
90
0
  count &= mask;
91
0
  return (num << count) | (num >> (UNSIGNED_MINUS(count) & mask));
92
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_rotl64
Unexecuted instantiation: message-parser.c:bits_rotl64
Unexecuted instantiation: message-size.c:bits_rotl64
Unexecuted instantiation: rfc2231-parser.c:bits_rotl64
Unexecuted instantiation: rfc822-parser.c:bits_rotl64
Unexecuted instantiation: message-header-parser.c:bits_rotl64
Unexecuted instantiation: charset-utf8.c:bits_rotl64
Unexecuted instantiation: charset-iconv.c:bits_rotl64
Unexecuted instantiation: fuzzer.c:bits_rotl64
Unexecuted instantiation: test-istream.c:bits_rotl64
Unexecuted instantiation: array.c:bits_rotl64
Unexecuted instantiation: buffer.c:bits_rotl64
Unexecuted instantiation: data-stack.c:bits_rotl64
Unexecuted instantiation: event-log.c:bits_rotl64
Unexecuted instantiation: failures.c:bits_rotl64
Unexecuted instantiation: fd-util.c:bits_rotl64
Unexecuted instantiation: hostpid.c:bits_rotl64
Unexecuted instantiation: imem.c:bits_rotl64
Unexecuted instantiation: iostream-pump.c:bits_rotl64
Unexecuted instantiation: istream.c:bits_rotl64
Unexecuted instantiation: istream-data.c:bits_rotl64
Unexecuted instantiation: ioloop.c:bits_rotl64
Unexecuted instantiation: ioloop-notify-inotify.c:bits_rotl64
Unexecuted instantiation: ioloop-epoll.c:bits_rotl64
Unexecuted instantiation: lib.c:bits_rotl64
Unexecuted instantiation: lib-event.c:bits_rotl64
Unexecuted instantiation: lib-signals.c:bits_rotl64
Unexecuted instantiation: memarea.c:bits_rotl64
Unexecuted instantiation: mempool.c:bits_rotl64
Unexecuted instantiation: mempool-alloconly.c:bits_rotl64
Unexecuted instantiation: mempool-datastack.c:bits_rotl64
Unexecuted instantiation: mempool-system.c:bits_rotl64
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_rotl64
Unexecuted instantiation: net.c:bits_rotl64
Unexecuted instantiation: ostream.c:bits_rotl64
Unexecuted instantiation: ostream-file.c:bits_rotl64
Unexecuted instantiation: path-util.c:bits_rotl64
Unexecuted instantiation: printf-format-fix.c:bits_rotl64
Unexecuted instantiation: process-title.c:bits_rotl64
Unexecuted instantiation: priorityq.c:bits_rotl64
Unexecuted instantiation: punycode.c:bits_rotl64
Unexecuted instantiation: randgen.c:bits_rotl64
Unexecuted instantiation: rand.c:bits_rotl64
Unexecuted instantiation: restrict-access.c:bits_rotl64
Unexecuted instantiation: safe-memset.c:bits_rotl64
Unexecuted instantiation: sendfile-util.c:bits_rotl64
Unexecuted instantiation: sleep.c:bits_rotl64
Unexecuted instantiation: str.c:bits_rotl64
Unexecuted instantiation: strescape.c:bits_rotl64
Unexecuted instantiation: strfuncs.c:bits_rotl64
Unexecuted instantiation: strnum.c:bits_rotl64
Unexecuted instantiation: time-util.c:bits_rotl64
Unexecuted instantiation: unichar.c:bits_rotl64
Unexecuted instantiation: write-full.c:bits_rotl64
Unexecuted instantiation: backtrace-string.c:bits_rotl64
Unexecuted instantiation: bits.c:bits_rotl64
Unexecuted instantiation: env-util.c:bits_rotl64
Unexecuted instantiation: event-filter.c:bits_rotl64
Unexecuted instantiation: event-filter-lexer.c:bits_rotl64
Unexecuted instantiation: event-filter-parser.c:bits_rotl64
Unexecuted instantiation: hash.c:bits_rotl64
Unexecuted instantiation: ipwd.c:bits_rotl64
Unexecuted instantiation: iostream.c:bits_rotl64
Unexecuted instantiation: istream-file.c:bits_rotl64
Unexecuted instantiation: ioloop-iolist.c:bits_rotl64
Unexecuted instantiation: ioloop-notify-fd.c:bits_rotl64
Unexecuted instantiation: primes.c:bits_rotl64
Unexecuted instantiation: str-parse.c:bits_rotl64
Unexecuted instantiation: wildcard-match.c:bits_rotl64
93
94
static inline uint32_t ATTR_NO_SANITIZE_INTEGER
95
  ATTR_NO_SANITIZE_IMPLICIT_CONVERSION
96
bits_rotl32(uint32_t num, unsigned int count)
97
0
{
98
0
        const unsigned int mask = CHAR_BIT*sizeof(num) - 1;
99
0
        count &= mask;
100
0
        return (num << count) | (num >> (UNSIGNED_MINUS(count) & mask));
101
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_rotl32
Unexecuted instantiation: message-parser.c:bits_rotl32
Unexecuted instantiation: message-size.c:bits_rotl32
Unexecuted instantiation: rfc2231-parser.c:bits_rotl32
Unexecuted instantiation: rfc822-parser.c:bits_rotl32
Unexecuted instantiation: message-header-parser.c:bits_rotl32
Unexecuted instantiation: charset-utf8.c:bits_rotl32
Unexecuted instantiation: charset-iconv.c:bits_rotl32
Unexecuted instantiation: fuzzer.c:bits_rotl32
Unexecuted instantiation: test-istream.c:bits_rotl32
Unexecuted instantiation: array.c:bits_rotl32
Unexecuted instantiation: buffer.c:bits_rotl32
Unexecuted instantiation: data-stack.c:bits_rotl32
Unexecuted instantiation: event-log.c:bits_rotl32
Unexecuted instantiation: failures.c:bits_rotl32
Unexecuted instantiation: fd-util.c:bits_rotl32
Unexecuted instantiation: hostpid.c:bits_rotl32
Unexecuted instantiation: imem.c:bits_rotl32
Unexecuted instantiation: iostream-pump.c:bits_rotl32
Unexecuted instantiation: istream.c:bits_rotl32
Unexecuted instantiation: istream-data.c:bits_rotl32
Unexecuted instantiation: ioloop.c:bits_rotl32
Unexecuted instantiation: ioloop-notify-inotify.c:bits_rotl32
Unexecuted instantiation: ioloop-epoll.c:bits_rotl32
Unexecuted instantiation: lib.c:bits_rotl32
Unexecuted instantiation: lib-event.c:bits_rotl32
Unexecuted instantiation: lib-signals.c:bits_rotl32
Unexecuted instantiation: memarea.c:bits_rotl32
Unexecuted instantiation: mempool.c:bits_rotl32
Unexecuted instantiation: mempool-alloconly.c:bits_rotl32
Unexecuted instantiation: mempool-datastack.c:bits_rotl32
Unexecuted instantiation: mempool-system.c:bits_rotl32
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_rotl32
Unexecuted instantiation: net.c:bits_rotl32
Unexecuted instantiation: ostream.c:bits_rotl32
Unexecuted instantiation: ostream-file.c:bits_rotl32
Unexecuted instantiation: path-util.c:bits_rotl32
Unexecuted instantiation: printf-format-fix.c:bits_rotl32
Unexecuted instantiation: process-title.c:bits_rotl32
Unexecuted instantiation: priorityq.c:bits_rotl32
Unexecuted instantiation: punycode.c:bits_rotl32
Unexecuted instantiation: randgen.c:bits_rotl32
Unexecuted instantiation: rand.c:bits_rotl32
Unexecuted instantiation: restrict-access.c:bits_rotl32
Unexecuted instantiation: safe-memset.c:bits_rotl32
Unexecuted instantiation: sendfile-util.c:bits_rotl32
Unexecuted instantiation: sleep.c:bits_rotl32
Unexecuted instantiation: str.c:bits_rotl32
Unexecuted instantiation: strescape.c:bits_rotl32
Unexecuted instantiation: strfuncs.c:bits_rotl32
Unexecuted instantiation: strnum.c:bits_rotl32
Unexecuted instantiation: time-util.c:bits_rotl32
Unexecuted instantiation: unichar.c:bits_rotl32
Unexecuted instantiation: write-full.c:bits_rotl32
Unexecuted instantiation: backtrace-string.c:bits_rotl32
Unexecuted instantiation: bits.c:bits_rotl32
Unexecuted instantiation: env-util.c:bits_rotl32
Unexecuted instantiation: event-filter.c:bits_rotl32
Unexecuted instantiation: event-filter-lexer.c:bits_rotl32
Unexecuted instantiation: event-filter-parser.c:bits_rotl32
Unexecuted instantiation: hash.c:bits_rotl32
Unexecuted instantiation: ipwd.c:bits_rotl32
Unexecuted instantiation: iostream.c:bits_rotl32
Unexecuted instantiation: istream-file.c:bits_rotl32
Unexecuted instantiation: ioloop-iolist.c:bits_rotl32
Unexecuted instantiation: ioloop-notify-fd.c:bits_rotl32
Unexecuted instantiation: primes.c:bits_rotl32
Unexecuted instantiation: str-parse.c:bits_rotl32
Unexecuted instantiation: wildcard-match.c:bits_rotl32
102
103
static inline uint64_t ATTR_NO_SANITIZE_INTEGER
104
  ATTR_NO_SANITIZE_IMPLICIT_CONVERSION
105
bits_rotr64(uint64_t num, unsigned int count)
106
0
{
107
0
  const unsigned int mask = CHAR_BIT*sizeof(num) - 1;
108
0
  count &= mask;
109
0
  return (num >> count) | (num << (UNSIGNED_MINUS(count) & mask));
110
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_rotr64
Unexecuted instantiation: message-parser.c:bits_rotr64
Unexecuted instantiation: message-size.c:bits_rotr64
Unexecuted instantiation: rfc2231-parser.c:bits_rotr64
Unexecuted instantiation: rfc822-parser.c:bits_rotr64
Unexecuted instantiation: message-header-parser.c:bits_rotr64
Unexecuted instantiation: charset-utf8.c:bits_rotr64
Unexecuted instantiation: charset-iconv.c:bits_rotr64
Unexecuted instantiation: fuzzer.c:bits_rotr64
Unexecuted instantiation: test-istream.c:bits_rotr64
Unexecuted instantiation: array.c:bits_rotr64
Unexecuted instantiation: buffer.c:bits_rotr64
Unexecuted instantiation: data-stack.c:bits_rotr64
Unexecuted instantiation: event-log.c:bits_rotr64
Unexecuted instantiation: failures.c:bits_rotr64
Unexecuted instantiation: fd-util.c:bits_rotr64
Unexecuted instantiation: hostpid.c:bits_rotr64
Unexecuted instantiation: imem.c:bits_rotr64
Unexecuted instantiation: iostream-pump.c:bits_rotr64
Unexecuted instantiation: istream.c:bits_rotr64
Unexecuted instantiation: istream-data.c:bits_rotr64
Unexecuted instantiation: ioloop.c:bits_rotr64
Unexecuted instantiation: ioloop-notify-inotify.c:bits_rotr64
Unexecuted instantiation: ioloop-epoll.c:bits_rotr64
Unexecuted instantiation: lib.c:bits_rotr64
Unexecuted instantiation: lib-event.c:bits_rotr64
Unexecuted instantiation: lib-signals.c:bits_rotr64
Unexecuted instantiation: memarea.c:bits_rotr64
Unexecuted instantiation: mempool.c:bits_rotr64
Unexecuted instantiation: mempool-alloconly.c:bits_rotr64
Unexecuted instantiation: mempool-datastack.c:bits_rotr64
Unexecuted instantiation: mempool-system.c:bits_rotr64
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_rotr64
Unexecuted instantiation: net.c:bits_rotr64
Unexecuted instantiation: ostream.c:bits_rotr64
Unexecuted instantiation: ostream-file.c:bits_rotr64
Unexecuted instantiation: path-util.c:bits_rotr64
Unexecuted instantiation: printf-format-fix.c:bits_rotr64
Unexecuted instantiation: process-title.c:bits_rotr64
Unexecuted instantiation: priorityq.c:bits_rotr64
Unexecuted instantiation: punycode.c:bits_rotr64
Unexecuted instantiation: randgen.c:bits_rotr64
Unexecuted instantiation: rand.c:bits_rotr64
Unexecuted instantiation: restrict-access.c:bits_rotr64
Unexecuted instantiation: safe-memset.c:bits_rotr64
Unexecuted instantiation: sendfile-util.c:bits_rotr64
Unexecuted instantiation: sleep.c:bits_rotr64
Unexecuted instantiation: str.c:bits_rotr64
Unexecuted instantiation: strescape.c:bits_rotr64
Unexecuted instantiation: strfuncs.c:bits_rotr64
Unexecuted instantiation: strnum.c:bits_rotr64
Unexecuted instantiation: time-util.c:bits_rotr64
Unexecuted instantiation: unichar.c:bits_rotr64
Unexecuted instantiation: write-full.c:bits_rotr64
Unexecuted instantiation: backtrace-string.c:bits_rotr64
Unexecuted instantiation: bits.c:bits_rotr64
Unexecuted instantiation: env-util.c:bits_rotr64
Unexecuted instantiation: event-filter.c:bits_rotr64
Unexecuted instantiation: event-filter-lexer.c:bits_rotr64
Unexecuted instantiation: event-filter-parser.c:bits_rotr64
Unexecuted instantiation: hash.c:bits_rotr64
Unexecuted instantiation: ipwd.c:bits_rotr64
Unexecuted instantiation: iostream.c:bits_rotr64
Unexecuted instantiation: istream-file.c:bits_rotr64
Unexecuted instantiation: ioloop-iolist.c:bits_rotr64
Unexecuted instantiation: ioloop-notify-fd.c:bits_rotr64
Unexecuted instantiation: primes.c:bits_rotr64
Unexecuted instantiation: str-parse.c:bits_rotr64
Unexecuted instantiation: wildcard-match.c:bits_rotr64
111
112
static inline uint32_t ATTR_NO_SANITIZE_INTEGER
113
  ATTR_NO_SANITIZE_IMPLICIT_CONVERSION
114
bits_rotr32(uint32_t num, unsigned int count)
115
0
{
116
0
  const unsigned int mask = CHAR_BIT*sizeof(num) - 1;
117
0
  count &= mask;
118
0
  return (num >> count) | (num << (UNSIGNED_MINUS(count) & mask));
119
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_rotr32
Unexecuted instantiation: message-parser.c:bits_rotr32
Unexecuted instantiation: message-size.c:bits_rotr32
Unexecuted instantiation: rfc2231-parser.c:bits_rotr32
Unexecuted instantiation: rfc822-parser.c:bits_rotr32
Unexecuted instantiation: message-header-parser.c:bits_rotr32
Unexecuted instantiation: charset-utf8.c:bits_rotr32
Unexecuted instantiation: charset-iconv.c:bits_rotr32
Unexecuted instantiation: fuzzer.c:bits_rotr32
Unexecuted instantiation: test-istream.c:bits_rotr32
Unexecuted instantiation: array.c:bits_rotr32
Unexecuted instantiation: buffer.c:bits_rotr32
Unexecuted instantiation: data-stack.c:bits_rotr32
Unexecuted instantiation: event-log.c:bits_rotr32
Unexecuted instantiation: failures.c:bits_rotr32
Unexecuted instantiation: fd-util.c:bits_rotr32
Unexecuted instantiation: hostpid.c:bits_rotr32
Unexecuted instantiation: imem.c:bits_rotr32
Unexecuted instantiation: iostream-pump.c:bits_rotr32
Unexecuted instantiation: istream.c:bits_rotr32
Unexecuted instantiation: istream-data.c:bits_rotr32
Unexecuted instantiation: ioloop.c:bits_rotr32
Unexecuted instantiation: ioloop-notify-inotify.c:bits_rotr32
Unexecuted instantiation: ioloop-epoll.c:bits_rotr32
Unexecuted instantiation: lib.c:bits_rotr32
Unexecuted instantiation: lib-event.c:bits_rotr32
Unexecuted instantiation: lib-signals.c:bits_rotr32
Unexecuted instantiation: memarea.c:bits_rotr32
Unexecuted instantiation: mempool.c:bits_rotr32
Unexecuted instantiation: mempool-alloconly.c:bits_rotr32
Unexecuted instantiation: mempool-datastack.c:bits_rotr32
Unexecuted instantiation: mempool-system.c:bits_rotr32
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_rotr32
Unexecuted instantiation: net.c:bits_rotr32
Unexecuted instantiation: ostream.c:bits_rotr32
Unexecuted instantiation: ostream-file.c:bits_rotr32
Unexecuted instantiation: path-util.c:bits_rotr32
Unexecuted instantiation: printf-format-fix.c:bits_rotr32
Unexecuted instantiation: process-title.c:bits_rotr32
Unexecuted instantiation: priorityq.c:bits_rotr32
Unexecuted instantiation: punycode.c:bits_rotr32
Unexecuted instantiation: randgen.c:bits_rotr32
Unexecuted instantiation: rand.c:bits_rotr32
Unexecuted instantiation: restrict-access.c:bits_rotr32
Unexecuted instantiation: safe-memset.c:bits_rotr32
Unexecuted instantiation: sendfile-util.c:bits_rotr32
Unexecuted instantiation: sleep.c:bits_rotr32
Unexecuted instantiation: str.c:bits_rotr32
Unexecuted instantiation: strescape.c:bits_rotr32
Unexecuted instantiation: strfuncs.c:bits_rotr32
Unexecuted instantiation: strnum.c:bits_rotr32
Unexecuted instantiation: time-util.c:bits_rotr32
Unexecuted instantiation: unichar.c:bits_rotr32
Unexecuted instantiation: write-full.c:bits_rotr32
Unexecuted instantiation: backtrace-string.c:bits_rotr32
Unexecuted instantiation: bits.c:bits_rotr32
Unexecuted instantiation: env-util.c:bits_rotr32
Unexecuted instantiation: event-filter.c:bits_rotr32
Unexecuted instantiation: event-filter-lexer.c:bits_rotr32
Unexecuted instantiation: event-filter-parser.c:bits_rotr32
Unexecuted instantiation: hash.c:bits_rotr32
Unexecuted instantiation: ipwd.c:bits_rotr32
Unexecuted instantiation: iostream.c:bits_rotr32
Unexecuted instantiation: istream-file.c:bits_rotr32
Unexecuted instantiation: ioloop-iolist.c:bits_rotr32
Unexecuted instantiation: ioloop-notify-fd.c:bits_rotr32
Unexecuted instantiation: primes.c:bits_rotr32
Unexecuted instantiation: str-parse.c:bits_rotr32
Unexecuted instantiation: wildcard-match.c:bits_rotr32
120
121
/* These functions look too big to be inline, but in almost all expected
122
   uses, 'fracbits' will be a compile-time constant, and most of the
123
   expressions will simplify greatly.
124
*/
125
126
/* Perform a piecewise-linear approximation to a log2, with fracbits "fractional" bits.
127
   Best explained with examples:
128
   With 2 fractional bits splitting each power of 2 into 4 bands:
129
     00,   01,   10,   11 ->   00,   01,   10,   11 (small corner cases)
130
    100,  101,  110,  111 ->  100,  101,  110,  111 ([4-8) split into 4 bands)
131
   1000, 1001, 1010, 1011 -> 1000, 1000, 1001, 1001 ([8-15) split ...
132
   1100, 1101, 1110, 1111 -> 1010, 1010, 1011, 1011  ... into 4 bands)
133
   [16..31) -> 11bb
134
   [32..63) -> 100bb
135
   [64..127) -> 101bb
136
   [128..255) -> 110bb
137
   e.g. 236 = 11101100 -> ((8-2)<<2 == 11000) + (111.....>> 5 == 111) - 100 == 11011
138
 */
139
static inline unsigned int ATTR_CONST
140
bits_fraclog(unsigned int val, unsigned int fracbits)
141
0
{
142
0
  unsigned int bits = bits_required32(val);
143
0
  if (bits <= fracbits + 1)
144
0
    return val;
145
0
146
0
  unsigned int bandnum = bits - fracbits;
147
0
  unsigned int bandstart = bandnum << fracbits;
148
0
  unsigned int fracoffsbad = val >> (bandnum - 1); /* has leading 1 still */
149
0
  unsigned int bucket = bandstart + fracoffsbad - BIT(fracbits);
150
0
  return bucket;
151
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_fraclog
Unexecuted instantiation: message-parser.c:bits_fraclog
Unexecuted instantiation: message-size.c:bits_fraclog
Unexecuted instantiation: rfc2231-parser.c:bits_fraclog
Unexecuted instantiation: rfc822-parser.c:bits_fraclog
Unexecuted instantiation: message-header-parser.c:bits_fraclog
Unexecuted instantiation: charset-utf8.c:bits_fraclog
Unexecuted instantiation: charset-iconv.c:bits_fraclog
Unexecuted instantiation: fuzzer.c:bits_fraclog
Unexecuted instantiation: test-istream.c:bits_fraclog
Unexecuted instantiation: array.c:bits_fraclog
Unexecuted instantiation: buffer.c:bits_fraclog
Unexecuted instantiation: data-stack.c:bits_fraclog
Unexecuted instantiation: event-log.c:bits_fraclog
Unexecuted instantiation: failures.c:bits_fraclog
Unexecuted instantiation: fd-util.c:bits_fraclog
Unexecuted instantiation: hostpid.c:bits_fraclog
Unexecuted instantiation: imem.c:bits_fraclog
Unexecuted instantiation: iostream-pump.c:bits_fraclog
Unexecuted instantiation: istream.c:bits_fraclog
Unexecuted instantiation: istream-data.c:bits_fraclog
Unexecuted instantiation: ioloop.c:bits_fraclog
Unexecuted instantiation: ioloop-notify-inotify.c:bits_fraclog
Unexecuted instantiation: ioloop-epoll.c:bits_fraclog
Unexecuted instantiation: lib.c:bits_fraclog
Unexecuted instantiation: lib-event.c:bits_fraclog
Unexecuted instantiation: lib-signals.c:bits_fraclog
Unexecuted instantiation: memarea.c:bits_fraclog
Unexecuted instantiation: mempool.c:bits_fraclog
Unexecuted instantiation: mempool-alloconly.c:bits_fraclog
Unexecuted instantiation: mempool-datastack.c:bits_fraclog
Unexecuted instantiation: mempool-system.c:bits_fraclog
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_fraclog
Unexecuted instantiation: net.c:bits_fraclog
Unexecuted instantiation: ostream.c:bits_fraclog
Unexecuted instantiation: ostream-file.c:bits_fraclog
Unexecuted instantiation: path-util.c:bits_fraclog
Unexecuted instantiation: printf-format-fix.c:bits_fraclog
Unexecuted instantiation: process-title.c:bits_fraclog
Unexecuted instantiation: priorityq.c:bits_fraclog
Unexecuted instantiation: punycode.c:bits_fraclog
Unexecuted instantiation: randgen.c:bits_fraclog
Unexecuted instantiation: rand.c:bits_fraclog
Unexecuted instantiation: restrict-access.c:bits_fraclog
Unexecuted instantiation: safe-memset.c:bits_fraclog
Unexecuted instantiation: sendfile-util.c:bits_fraclog
Unexecuted instantiation: sleep.c:bits_fraclog
Unexecuted instantiation: str.c:bits_fraclog
Unexecuted instantiation: strescape.c:bits_fraclog
Unexecuted instantiation: strfuncs.c:bits_fraclog
Unexecuted instantiation: strnum.c:bits_fraclog
Unexecuted instantiation: time-util.c:bits_fraclog
Unexecuted instantiation: unichar.c:bits_fraclog
Unexecuted instantiation: write-full.c:bits_fraclog
Unexecuted instantiation: backtrace-string.c:bits_fraclog
Unexecuted instantiation: bits.c:bits_fraclog
Unexecuted instantiation: env-util.c:bits_fraclog
Unexecuted instantiation: event-filter.c:bits_fraclog
Unexecuted instantiation: event-filter-lexer.c:bits_fraclog
Unexecuted instantiation: event-filter-parser.c:bits_fraclog
Unexecuted instantiation: hash.c:bits_fraclog
Unexecuted instantiation: ipwd.c:bits_fraclog
Unexecuted instantiation: iostream.c:bits_fraclog
Unexecuted instantiation: istream-file.c:bits_fraclog
Unexecuted instantiation: ioloop-iolist.c:bits_fraclog
Unexecuted instantiation: ioloop-notify-fd.c:bits_fraclog
Unexecuted instantiation: primes.c:bits_fraclog
Unexecuted instantiation: str-parse.c:bits_fraclog
Unexecuted instantiation: wildcard-match.c:bits_fraclog
152
static inline unsigned int ATTR_CONST
153
bits_fraclog_bucket_start(unsigned int bucket, unsigned int fracbits)
154
0
{
155
0
  unsigned int bandnum = bucket >> fracbits;
156
0
  if (bandnum <= 1)
157
0
    return bucket;
158
0
  if (fracbits == 0)
159
0
    return BIT(bucket - 1);
160
0
  unsigned int fracoffs = bucket & (BIT(fracbits)-1);
161
0
  unsigned int fracoffs1 = BIT(fracbits) + fracoffs;
162
0
  unsigned int bandstart = fracoffs1 << (bandnum - 1);
163
0
  return bandstart;
164
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_fraclog_bucket_start
Unexecuted instantiation: message-parser.c:bits_fraclog_bucket_start
Unexecuted instantiation: message-size.c:bits_fraclog_bucket_start
Unexecuted instantiation: rfc2231-parser.c:bits_fraclog_bucket_start
Unexecuted instantiation: rfc822-parser.c:bits_fraclog_bucket_start
Unexecuted instantiation: message-header-parser.c:bits_fraclog_bucket_start
Unexecuted instantiation: charset-utf8.c:bits_fraclog_bucket_start
Unexecuted instantiation: charset-iconv.c:bits_fraclog_bucket_start
Unexecuted instantiation: fuzzer.c:bits_fraclog_bucket_start
Unexecuted instantiation: test-istream.c:bits_fraclog_bucket_start
Unexecuted instantiation: array.c:bits_fraclog_bucket_start
Unexecuted instantiation: buffer.c:bits_fraclog_bucket_start
Unexecuted instantiation: data-stack.c:bits_fraclog_bucket_start
Unexecuted instantiation: event-log.c:bits_fraclog_bucket_start
Unexecuted instantiation: failures.c:bits_fraclog_bucket_start
Unexecuted instantiation: fd-util.c:bits_fraclog_bucket_start
Unexecuted instantiation: hostpid.c:bits_fraclog_bucket_start
Unexecuted instantiation: imem.c:bits_fraclog_bucket_start
Unexecuted instantiation: iostream-pump.c:bits_fraclog_bucket_start
Unexecuted instantiation: istream.c:bits_fraclog_bucket_start
Unexecuted instantiation: istream-data.c:bits_fraclog_bucket_start
Unexecuted instantiation: ioloop.c:bits_fraclog_bucket_start
Unexecuted instantiation: ioloop-notify-inotify.c:bits_fraclog_bucket_start
Unexecuted instantiation: ioloop-epoll.c:bits_fraclog_bucket_start
Unexecuted instantiation: lib.c:bits_fraclog_bucket_start
Unexecuted instantiation: lib-event.c:bits_fraclog_bucket_start
Unexecuted instantiation: lib-signals.c:bits_fraclog_bucket_start
Unexecuted instantiation: memarea.c:bits_fraclog_bucket_start
Unexecuted instantiation: mempool.c:bits_fraclog_bucket_start
Unexecuted instantiation: mempool-alloconly.c:bits_fraclog_bucket_start
Unexecuted instantiation: mempool-datastack.c:bits_fraclog_bucket_start
Unexecuted instantiation: mempool-system.c:bits_fraclog_bucket_start
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_fraclog_bucket_start
Unexecuted instantiation: net.c:bits_fraclog_bucket_start
Unexecuted instantiation: ostream.c:bits_fraclog_bucket_start
Unexecuted instantiation: ostream-file.c:bits_fraclog_bucket_start
Unexecuted instantiation: path-util.c:bits_fraclog_bucket_start
Unexecuted instantiation: printf-format-fix.c:bits_fraclog_bucket_start
Unexecuted instantiation: process-title.c:bits_fraclog_bucket_start
Unexecuted instantiation: priorityq.c:bits_fraclog_bucket_start
Unexecuted instantiation: punycode.c:bits_fraclog_bucket_start
Unexecuted instantiation: randgen.c:bits_fraclog_bucket_start
Unexecuted instantiation: rand.c:bits_fraclog_bucket_start
Unexecuted instantiation: restrict-access.c:bits_fraclog_bucket_start
Unexecuted instantiation: safe-memset.c:bits_fraclog_bucket_start
Unexecuted instantiation: sendfile-util.c:bits_fraclog_bucket_start
Unexecuted instantiation: sleep.c:bits_fraclog_bucket_start
Unexecuted instantiation: str.c:bits_fraclog_bucket_start
Unexecuted instantiation: strescape.c:bits_fraclog_bucket_start
Unexecuted instantiation: strfuncs.c:bits_fraclog_bucket_start
Unexecuted instantiation: strnum.c:bits_fraclog_bucket_start
Unexecuted instantiation: time-util.c:bits_fraclog_bucket_start
Unexecuted instantiation: unichar.c:bits_fraclog_bucket_start
Unexecuted instantiation: write-full.c:bits_fraclog_bucket_start
Unexecuted instantiation: backtrace-string.c:bits_fraclog_bucket_start
Unexecuted instantiation: bits.c:bits_fraclog_bucket_start
Unexecuted instantiation: env-util.c:bits_fraclog_bucket_start
Unexecuted instantiation: event-filter.c:bits_fraclog_bucket_start
Unexecuted instantiation: event-filter-lexer.c:bits_fraclog_bucket_start
Unexecuted instantiation: event-filter-parser.c:bits_fraclog_bucket_start
Unexecuted instantiation: hash.c:bits_fraclog_bucket_start
Unexecuted instantiation: ipwd.c:bits_fraclog_bucket_start
Unexecuted instantiation: iostream.c:bits_fraclog_bucket_start
Unexecuted instantiation: istream-file.c:bits_fraclog_bucket_start
Unexecuted instantiation: ioloop-iolist.c:bits_fraclog_bucket_start
Unexecuted instantiation: ioloop-notify-fd.c:bits_fraclog_bucket_start
Unexecuted instantiation: primes.c:bits_fraclog_bucket_start
Unexecuted instantiation: str-parse.c:bits_fraclog_bucket_start
Unexecuted instantiation: wildcard-match.c:bits_fraclog_bucket_start
165
static inline unsigned int ATTR_CONST ATTR_NO_SANITIZE_INTEGER
166
  ATTR_NO_SANITIZE_IMPLICIT_CONVERSION
167
bits_fraclog_bucket_end(unsigned int bucket, unsigned int fracbits)
168
0
{
169
0
  unsigned int bandnum = bucket >> fracbits;
170
0
  if (bandnum <= 1)
171
0
    return bucket;
172
0
  if (fracbits == 0)
173
0
    return BIT(bucket - 1) * 2 - 1;
174
0
  unsigned int fracoffs = bucket & (BIT(fracbits)-1);
175
0
  unsigned int nextfracoffs1 = 1 + BIT(fracbits) + fracoffs;
176
0
  unsigned int nextbandstart = nextfracoffs1 << (bandnum - 1);
177
0
  return nextbandstart - 1;
178
0
}
Unexecuted instantiation: fuzz-message-parser.c:bits_fraclog_bucket_end
Unexecuted instantiation: message-parser.c:bits_fraclog_bucket_end
Unexecuted instantiation: message-size.c:bits_fraclog_bucket_end
Unexecuted instantiation: rfc2231-parser.c:bits_fraclog_bucket_end
Unexecuted instantiation: rfc822-parser.c:bits_fraclog_bucket_end
Unexecuted instantiation: message-header-parser.c:bits_fraclog_bucket_end
Unexecuted instantiation: charset-utf8.c:bits_fraclog_bucket_end
Unexecuted instantiation: charset-iconv.c:bits_fraclog_bucket_end
Unexecuted instantiation: fuzzer.c:bits_fraclog_bucket_end
Unexecuted instantiation: test-istream.c:bits_fraclog_bucket_end
Unexecuted instantiation: array.c:bits_fraclog_bucket_end
Unexecuted instantiation: buffer.c:bits_fraclog_bucket_end
Unexecuted instantiation: data-stack.c:bits_fraclog_bucket_end
Unexecuted instantiation: event-log.c:bits_fraclog_bucket_end
Unexecuted instantiation: failures.c:bits_fraclog_bucket_end
Unexecuted instantiation: fd-util.c:bits_fraclog_bucket_end
Unexecuted instantiation: hostpid.c:bits_fraclog_bucket_end
Unexecuted instantiation: imem.c:bits_fraclog_bucket_end
Unexecuted instantiation: iostream-pump.c:bits_fraclog_bucket_end
Unexecuted instantiation: istream.c:bits_fraclog_bucket_end
Unexecuted instantiation: istream-data.c:bits_fraclog_bucket_end
Unexecuted instantiation: ioloop.c:bits_fraclog_bucket_end
Unexecuted instantiation: ioloop-notify-inotify.c:bits_fraclog_bucket_end
Unexecuted instantiation: ioloop-epoll.c:bits_fraclog_bucket_end
Unexecuted instantiation: lib.c:bits_fraclog_bucket_end
Unexecuted instantiation: lib-event.c:bits_fraclog_bucket_end
Unexecuted instantiation: lib-signals.c:bits_fraclog_bucket_end
Unexecuted instantiation: memarea.c:bits_fraclog_bucket_end
Unexecuted instantiation: mempool.c:bits_fraclog_bucket_end
Unexecuted instantiation: mempool-alloconly.c:bits_fraclog_bucket_end
Unexecuted instantiation: mempool-datastack.c:bits_fraclog_bucket_end
Unexecuted instantiation: mempool-system.c:bits_fraclog_bucket_end
Unexecuted instantiation: mempool-unsafe-datastack.c:bits_fraclog_bucket_end
Unexecuted instantiation: net.c:bits_fraclog_bucket_end
Unexecuted instantiation: ostream.c:bits_fraclog_bucket_end
Unexecuted instantiation: ostream-file.c:bits_fraclog_bucket_end
Unexecuted instantiation: path-util.c:bits_fraclog_bucket_end
Unexecuted instantiation: printf-format-fix.c:bits_fraclog_bucket_end
Unexecuted instantiation: process-title.c:bits_fraclog_bucket_end
Unexecuted instantiation: priorityq.c:bits_fraclog_bucket_end
Unexecuted instantiation: punycode.c:bits_fraclog_bucket_end
Unexecuted instantiation: randgen.c:bits_fraclog_bucket_end
Unexecuted instantiation: rand.c:bits_fraclog_bucket_end
Unexecuted instantiation: restrict-access.c:bits_fraclog_bucket_end
Unexecuted instantiation: safe-memset.c:bits_fraclog_bucket_end
Unexecuted instantiation: sendfile-util.c:bits_fraclog_bucket_end
Unexecuted instantiation: sleep.c:bits_fraclog_bucket_end
Unexecuted instantiation: str.c:bits_fraclog_bucket_end
Unexecuted instantiation: strescape.c:bits_fraclog_bucket_end
Unexecuted instantiation: strfuncs.c:bits_fraclog_bucket_end
Unexecuted instantiation: strnum.c:bits_fraclog_bucket_end
Unexecuted instantiation: time-util.c:bits_fraclog_bucket_end
Unexecuted instantiation: unichar.c:bits_fraclog_bucket_end
Unexecuted instantiation: write-full.c:bits_fraclog_bucket_end
Unexecuted instantiation: backtrace-string.c:bits_fraclog_bucket_end
Unexecuted instantiation: bits.c:bits_fraclog_bucket_end
Unexecuted instantiation: env-util.c:bits_fraclog_bucket_end
Unexecuted instantiation: event-filter.c:bits_fraclog_bucket_end
Unexecuted instantiation: event-filter-lexer.c:bits_fraclog_bucket_end
Unexecuted instantiation: event-filter-parser.c:bits_fraclog_bucket_end
Unexecuted instantiation: hash.c:bits_fraclog_bucket_end
Unexecuted instantiation: ipwd.c:bits_fraclog_bucket_end
Unexecuted instantiation: iostream.c:bits_fraclog_bucket_end
Unexecuted instantiation: istream-file.c:bits_fraclog_bucket_end
Unexecuted instantiation: ioloop-iolist.c:bits_fraclog_bucket_end
Unexecuted instantiation: ioloop-notify-fd.c:bits_fraclog_bucket_end
Unexecuted instantiation: primes.c:bits_fraclog_bucket_end
Unexecuted instantiation: str-parse.c:bits_fraclog_bucket_end
Unexecuted instantiation: wildcard-match.c:bits_fraclog_bucket_end
179
/* UNSAFE: multiple use of parameter (but expecting a constant in reality).
180
   But a macro as it's most likely to be used to declare an array size.
181
*/
182
#define BITS_FRACLOG_BUCKETS(bits) ((33u - (bits)) << (bits))
183
184
#endif