Bitcoin Core Fuzz Coverage Report for wallet_tx_can_be_bumped

Coverage Report

Created: 2025-11-19 11:20

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/Users/brunogarcia/projects/bitcoin-core-dev/src/util/vecdeque.h
Line
Count
Source
1
// Copyright (c) The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_UTIL_VECDEQUE_H
6
#define BITCOIN_UTIL_VECDEQUE_H
7
8
#include <util/check.h>
9
10
#include <cstring>
11
#include <memory>
12
#include <type_traits>
13
14
/** Data structure largely mimicking std::deque, but using single preallocated ring buffer.
15
 *
16
 * - More efficient and better memory locality than std::deque.
17
 * - Most operations ({push_,pop_,emplace_,}{front,back}(), operator[], ...) are O(1),
18
 *   unless reallocation is needed (in which case they are O(n)).
19
 * - Supports reserve(), capacity(), shrink_to_fit() like vectors.
20
 * - No iterator support.
21
 * - Data is not stored in a single contiguous block, so no data().
22
 */
23
template<typename T>
24
class VecDeque
25
{
26
    /** Pointer to allocated memory. Can contain constructed and uninitialized T objects. */
27
    T* m_buffer{nullptr};
28
    /** m_buffer + m_offset points to first object in queue. m_offset = 0 if m_capacity is 0;
29
     *  otherwise 0 <= m_offset < m_capacity. */
30
    size_t m_offset{0};
31
    /** Number of objects in the container. 0 <= m_size <= m_capacity. */
32
    size_t m_size{0};
33
    /** The size of m_buffer, expressed as a multiple of the size of T. */
34
    size_t m_capacity{0};
35
36
    /** Returns the number of populated objects between m_offset and the end of the buffer. */
37
0
    size_t FirstPart() const noexcept { return std::min(m_capacity - m_offset, m_size); }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::FirstPart() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::FirstPart() const
Unexecuted instantiation: VecDeque<unsigned char>::FirstPart() const
Unexecuted instantiation: VecDeque<unsigned short>::FirstPart() const
Unexecuted instantiation: VecDeque<unsigned int>::FirstPart() const
Unexecuted instantiation: VecDeque<unsigned long long>::FirstPart() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::FirstPart() const
38
39
    void Reallocate(size_t capacity)
40
0
    {
41
0
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(capacity >= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
42
0
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
43
        // Allocate new buffer.
44
0
        T* new_buffer = capacity ? std::allocator<T>().allocate(capacity) : nullptr;
45
0
        if (capacity) {
46
0
            if constexpr (std::is_trivially_copyable_v<T>) {
47
                // When T is trivially copyable, just copy the data over from old to new buffer.
48
0
                size_t first_part = FirstPart();
49
0
                if (first_part != 0) {
50
0
                    std::memcpy(new_buffer, m_buffer + m_offset, first_part * sizeof(T));
51
0
                }
52
0
                if (first_part != m_size) {
53
0
                    std::memcpy(new_buffer + first_part, m_buffer, (m_size - first_part) * sizeof(T));
54
0
                }
55
0
            } else {
56
                // Otherwise move-construct in place in the new buffer, and destroy old buffer objects.
57
0
                size_t old_pos = m_offset;
58
0
                for (size_t new_pos = 0; new_pos < m_size; ++new_pos) {
59
0
                    std::construct_at(new_buffer + new_pos, std::move(*(m_buffer + old_pos)));
60
0
                    std::destroy_at(m_buffer + old_pos);
61
0
                    ++old_pos;
62
0
                    if (old_pos == m_capacity) old_pos = 0;
63
0
                }
64
0
            }
65
0
        }
66
        // Deallocate old buffer and update housekeeping.
67
0
        std::allocator<T>().deallocate(m_buffer, m_capacity);
68
0
        m_buffer = new_buffer;
69
0
        m_offset = 0;
70
0
        m_capacity = capacity;
71
0
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume((m_offset == 0 && m_capacity == 0) || m_offset < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
72
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::Reallocate(unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::Reallocate(unsigned long)
Unexecuted instantiation: VecDeque<unsigned char>::Reallocate(unsigned long)
Unexecuted instantiation: VecDeque<unsigned short>::Reallocate(unsigned long)
Unexecuted instantiation: VecDeque<unsigned int>::Reallocate(unsigned long)
Unexecuted instantiation: VecDeque<unsigned long long>::Reallocate(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::Reallocate(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::Reallocate(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::Reallocate(unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::Reallocate(unsigned long)
73
74
    /** What index in the buffer does logical entry number pos have? */
75
    size_t BufferIndex(size_t pos) const noexcept
76
0
    {
77
0
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(pos < m_capacity);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
78
        // The expression below is used instead of the more obvious (pos + m_offset >= m_capacity),
79
        // because the addition there could in theory overflow with very large deques.
80
0
        if (pos >= m_capacity - m_offset) {
81
0
            return (m_offset + pos) - m_capacity;
82
0
        } else {
83
0
            return m_offset + pos;
84
0
        }
85
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::BufferIndex(unsigned long) const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::BufferIndex(unsigned long) const
Unexecuted instantiation: VecDeque<unsigned char>::BufferIndex(unsigned long) const
Unexecuted instantiation: VecDeque<unsigned short>::BufferIndex(unsigned long) const
Unexecuted instantiation: VecDeque<unsigned int>::BufferIndex(unsigned long) const
Unexecuted instantiation: VecDeque<unsigned long long>::BufferIndex(unsigned long) const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::BufferIndex(unsigned long) const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::BufferIndex(unsigned long) const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::BufferIndex(unsigned long) const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::BufferIndex(unsigned long) const
86
87
    /** Specialization of resize() that can only shrink. Separate so that clear() can call it
88
     *  without requiring a default T constructor. */
89
    void ResizeDown(size_t size) noexcept
90
0
    {
91
0
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(size <= m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
92
0
        if constexpr (std::is_trivially_destructible_v<T>) {
93
            // If T is trivially destructible, we do not need to do anything but update the
94
            // housekeeping record. Default constructor or zero-filling will be used when
95
            // the space is reused.
96
0
            m_size = size;
97
0
        } else {
98
            // If not, we need to invoke the destructor for every element separately.
99
0
            while (m_size > size) {
100
0
                std::destroy_at(m_buffer + BufferIndex(m_size - 1));
101
0
                --m_size;
102
0
            }
103
0
        }
104
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::ResizeDown(unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::ResizeDown(unsigned long)
Unexecuted instantiation: VecDeque<unsigned char>::ResizeDown(unsigned long)
Unexecuted instantiation: VecDeque<unsigned short>::ResizeDown(unsigned long)
Unexecuted instantiation: VecDeque<unsigned int>::ResizeDown(unsigned long)
Unexecuted instantiation: VecDeque<unsigned long long>::ResizeDown(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::ResizeDown(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::ResizeDown(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::ResizeDown(unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::ResizeDown(unsigned long)
105
106
public:
107
0
    VecDeque() noexcept = default;
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::VecDeque()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::VecDeque()
Unexecuted instantiation: VecDeque<unsigned char>::VecDeque()
Unexecuted instantiation: VecDeque<unsigned short>::VecDeque()
Unexecuted instantiation: VecDeque<unsigned int>::VecDeque()
Unexecuted instantiation: VecDeque<unsigned long long>::VecDeque()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::VecDeque()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::VecDeque()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::VecDeque()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::VecDeque()
108
109
    /** Resize the deque to be exactly size size (adding default-constructed elements if needed). */
110
    void resize(size_t size)
111
0
    {
112
0
        if (size < m_size) {
113
            // Delegate to ResizeDown when shrinking.
114
0
            ResizeDown(size);
115
0
        } else if (size > m_size) {
116
            // When growing, first see if we need to allocate more space.
117
0
            if (size > m_capacity) Reallocate(size);
118
0
            while (m_size < size) {
119
0
                std::construct_at(m_buffer + BufferIndex(m_size));
120
0
                ++m_size;
121
0
            }
122
0
        }
123
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::resize(unsigned long)
Unexecuted instantiation: VecDeque<unsigned short>::resize(unsigned long)
Unexecuted instantiation: VecDeque<unsigned int>::resize(unsigned long)
Unexecuted instantiation: VecDeque<unsigned long long>::resize(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::resize(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::resize(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::resize(unsigned long)
124
125
    /** Resize the deque to be size 0. The capacity will remain unchanged. */
126
0
    void clear() noexcept { ResizeDown(0); }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::clear()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::clear()
Unexecuted instantiation: VecDeque<unsigned char>::clear()
Unexecuted instantiation: VecDeque<unsigned short>::clear()
Unexecuted instantiation: VecDeque<unsigned int>::clear()
Unexecuted instantiation: VecDeque<unsigned long long>::clear()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::clear()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::clear()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::clear()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::clear()
127
128
    /** Destroy a deque. */
129
    ~VecDeque()
130
0
    {
131
0
        clear();
132
0
        Reallocate(0);
133
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::~VecDeque()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::~VecDeque()
Unexecuted instantiation: VecDeque<unsigned char>::~VecDeque()
Unexecuted instantiation: VecDeque<unsigned short>::~VecDeque()
Unexecuted instantiation: VecDeque<unsigned int>::~VecDeque()
Unexecuted instantiation: VecDeque<unsigned long long>::~VecDeque()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::~VecDeque()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::~VecDeque()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::~VecDeque()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::~VecDeque()
134
135
    /** Copy-assign a deque. */
136
    VecDeque& operator=(const VecDeque& other)
137
0
    {
138
0
        if (&other == this) [[unlikely]] return *this;
139
0
        clear();
140
0
        Reallocate(other.m_size);
141
0
        if constexpr (std::is_trivially_copyable_v<T>) {
142
0
            size_t first_part = other.FirstPart();
143
0
            Assume(first_part > 0 || m_size == 0);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
            Assume(first_part > 0 || m_size == 0);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
            Assume(first_part > 0 || m_size == 0);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
            Assume(first_part > 0 || m_size == 0);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
144
0
            if (first_part != 0) {
145
0
                std::memcpy(m_buffer, other.m_buffer + other.m_offset, first_part * sizeof(T));
146
0
            }
147
0
            if (first_part != other.m_size) {
148
0
                std::memcpy(m_buffer + first_part, other.m_buffer, (other.m_size - first_part) * sizeof(T));
149
0
            }
150
0
            m_size = other.m_size;
151
0
        } else {
152
0
            while (m_size < other.m_size) {
153
0
                std::construct_at(m_buffer + BufferIndex(m_size), other[m_size]);
154
0
                ++m_size;
155
0
            }
156
0
        }
157
0
        return *this;
158
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::operator=(VecDeque<unsigned char> const&)
Unexecuted instantiation: VecDeque<unsigned short>::operator=(VecDeque<unsigned short> const&)
Unexecuted instantiation: VecDeque<unsigned int>::operator=(VecDeque<unsigned int> const&)
Unexecuted instantiation: VecDeque<unsigned long long>::operator=(VecDeque<unsigned long long> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::operator=(VecDeque<(anonymous namespace)::TrackedObj<1ul>> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::operator=(VecDeque<(anonymous namespace)::TrackedObj<3ul>> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::operator=(VecDeque<(anonymous namespace)::TrackedObj<17ul>> const&)
159
160
    /** Swap two deques. */
161
    void swap(VecDeque& other) noexcept
162
0
    {
163
0
        std::swap(m_buffer, other.m_buffer);
164
0
        std::swap(m_offset, other.m_offset);
165
0
        std::swap(m_size, other.m_size);
166
0
        std::swap(m_capacity, other.m_capacity);
167
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::swap(VecDeque<unsigned char>&)
Unexecuted instantiation: VecDeque<unsigned short>::swap(VecDeque<unsigned short>&)
Unexecuted instantiation: VecDeque<unsigned int>::swap(VecDeque<unsigned int>&)
Unexecuted instantiation: VecDeque<unsigned long long>::swap(VecDeque<unsigned long long>&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::swap(VecDeque<(anonymous namespace)::TrackedObj<1ul>>&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::swap(VecDeque<(anonymous namespace)::TrackedObj<3ul>>&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::swap(VecDeque<(anonymous namespace)::TrackedObj<17ul>>&)
168
169
    /** Non-member version of swap. */
170
0
    friend void swap(VecDeque& a, VecDeque& b) noexcept { a.swap(b); }
Unexecuted instantiation: swap(VecDeque<unsigned char>&, VecDeque<unsigned char>&)
Unexecuted instantiation: swap(VecDeque<unsigned short>&, VecDeque<unsigned short>&)
Unexecuted instantiation: swap(VecDeque<unsigned int>&, VecDeque<unsigned int>&)
Unexecuted instantiation: swap(VecDeque<unsigned long long>&, VecDeque<unsigned long long>&)
Unexecuted instantiation: vecdeque.cpp:swap(VecDeque<(anonymous namespace)::TrackedObj<1ul>>&, VecDeque<(anonymous namespace)::TrackedObj<1ul>>&)
Unexecuted instantiation: vecdeque.cpp:swap(VecDeque<(anonymous namespace)::TrackedObj<3ul>>&, VecDeque<(anonymous namespace)::TrackedObj<3ul>>&)
Unexecuted instantiation: vecdeque.cpp:swap(VecDeque<(anonymous namespace)::TrackedObj<17ul>>&, VecDeque<(anonymous namespace)::TrackedObj<17ul>>&)
171
172
    /** Move-assign a deque. */
173
    VecDeque& operator=(VecDeque&& other) noexcept
174
0
    {
175
0
        swap(other);
176
0
        return *this;
177
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::operator=(VecDeque<unsigned char>&&)
Unexecuted instantiation: VecDeque<unsigned short>::operator=(VecDeque<unsigned short>&&)
Unexecuted instantiation: VecDeque<unsigned int>::operator=(VecDeque<unsigned int>&&)
Unexecuted instantiation: VecDeque<unsigned long long>::operator=(VecDeque<unsigned long long>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::operator=(VecDeque<(anonymous namespace)::TrackedObj<1ul>>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::operator=(VecDeque<(anonymous namespace)::TrackedObj<3ul>>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::operator=(VecDeque<(anonymous namespace)::TrackedObj<17ul>>&&)
178
179
    /** Copy-construct a deque. */
180
0
    VecDeque(const VecDeque& other) { *this = other; }
Unexecuted instantiation: VecDeque<unsigned char>::VecDeque(VecDeque<unsigned char> const&)
Unexecuted instantiation: VecDeque<unsigned short>::VecDeque(VecDeque<unsigned short> const&)
Unexecuted instantiation: VecDeque<unsigned int>::VecDeque(VecDeque<unsigned int> const&)
Unexecuted instantiation: VecDeque<unsigned long long>::VecDeque(VecDeque<unsigned long long> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::VecDeque(VecDeque<(anonymous namespace)::TrackedObj<1ul>> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::VecDeque(VecDeque<(anonymous namespace)::TrackedObj<3ul>> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::VecDeque(VecDeque<(anonymous namespace)::TrackedObj<17ul>> const&)
181
    /** Move-construct a deque. */
182
0
    VecDeque(VecDeque&& other) noexcept { swap(other); }
Unexecuted instantiation: VecDeque<unsigned char>::VecDeque(VecDeque<unsigned char>&&)
Unexecuted instantiation: VecDeque<unsigned short>::VecDeque(VecDeque<unsigned short>&&)
Unexecuted instantiation: VecDeque<unsigned int>::VecDeque(VecDeque<unsigned int>&&)
Unexecuted instantiation: VecDeque<unsigned long long>::VecDeque(VecDeque<unsigned long long>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::VecDeque(VecDeque<(anonymous namespace)::TrackedObj<1ul>>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::VecDeque(VecDeque<(anonymous namespace)::TrackedObj<3ul>>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::VecDeque(VecDeque<(anonymous namespace)::TrackedObj<17ul>>&&)
183
184
    /** Equality comparison between two deques (only compares size+contents, not capacity). */
185
    bool friend operator==(const VecDeque& a, const VecDeque& b)
186
0
    {
187
0
        if (a.m_size != b.m_size) return false;
188
0
        for (size_t i = 0; i < a.m_size; ++i) {
189
0
            if (a[i] != b[i]) return false;
190
0
        }
191
0
        return true;
192
0
    }
Unexecuted instantiation: operator==(VecDeque<unsigned char> const&, VecDeque<unsigned char> const&)
Unexecuted instantiation: operator==(VecDeque<unsigned short> const&, VecDeque<unsigned short> const&)
Unexecuted instantiation: operator==(VecDeque<unsigned int> const&, VecDeque<unsigned int> const&)
Unexecuted instantiation: operator==(VecDeque<unsigned long long> const&, VecDeque<unsigned long long> const&)
Unexecuted instantiation: vecdeque.cpp:operator==(VecDeque<(anonymous namespace)::TrackedObj<1ul>> const&, VecDeque<(anonymous namespace)::TrackedObj<1ul>> const&)
Unexecuted instantiation: vecdeque.cpp:operator==(VecDeque<(anonymous namespace)::TrackedObj<3ul>> const&, VecDeque<(anonymous namespace)::TrackedObj<3ul>> const&)
Unexecuted instantiation: vecdeque.cpp:operator==(VecDeque<(anonymous namespace)::TrackedObj<17ul>> const&, VecDeque<(anonymous namespace)::TrackedObj<17ul>> const&)
193
194
    /** Comparison between two deques, implementing lexicographic ordering on the contents. */
195
    std::strong_ordering friend operator<=>(const VecDeque& a, const VecDeque& b)
196
0
    {
197
0
        size_t pos_a{0}, pos_b{0};
198
0
        while (pos_a < a.m_size && pos_b < b.m_size) {
199
0
            auto cmp = a[pos_a++] <=> b[pos_b++];
200
0
            if (cmp != 0) return cmp;
201
0
        }
202
0
        return a.m_size <=> b.m_size;
203
0
    }
Unexecuted instantiation: operator<=>(VecDeque<unsigned char> const&, VecDeque<unsigned char> const&)
Unexecuted instantiation: operator<=>(VecDeque<unsigned short> const&, VecDeque<unsigned short> const&)
Unexecuted instantiation: operator<=>(VecDeque<unsigned int> const&, VecDeque<unsigned int> const&)
Unexecuted instantiation: operator<=>(VecDeque<unsigned long long> const&, VecDeque<unsigned long long> const&)
Unexecuted instantiation: vecdeque.cpp:operator<=>(VecDeque<(anonymous namespace)::TrackedObj<1ul>> const&, VecDeque<(anonymous namespace)::TrackedObj<1ul>> const&)
Unexecuted instantiation: vecdeque.cpp:operator<=>(VecDeque<(anonymous namespace)::TrackedObj<3ul>> const&, VecDeque<(anonymous namespace)::TrackedObj<3ul>> const&)
Unexecuted instantiation: vecdeque.cpp:operator<=>(VecDeque<(anonymous namespace)::TrackedObj<17ul>> const&, VecDeque<(anonymous namespace)::TrackedObj<17ul>> const&)
204
205
    /** Increase the capacity to capacity. Capacity will not shrink. */
206
    void reserve(size_t capacity)
207
0
    {
208
0
        if (capacity > m_capacity) Reallocate(capacity);
209
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::reserve(unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::reserve(unsigned long)
Unexecuted instantiation: VecDeque<unsigned char>::reserve(unsigned long)
Unexecuted instantiation: VecDeque<unsigned short>::reserve(unsigned long)
Unexecuted instantiation: VecDeque<unsigned int>::reserve(unsigned long)
Unexecuted instantiation: VecDeque<unsigned long long>::reserve(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::reserve(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::reserve(unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::reserve(unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::reserve(unsigned long)
210
211
    /** Make the capacity equal to the size. The contents does not change. */
212
    void shrink_to_fit()
213
0
    {
214
0
        if (m_capacity > m_size) Reallocate(m_size);
215
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::shrink_to_fit()
Unexecuted instantiation: VecDeque<unsigned short>::shrink_to_fit()
Unexecuted instantiation: VecDeque<unsigned int>::shrink_to_fit()
Unexecuted instantiation: VecDeque<unsigned long long>::shrink_to_fit()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::shrink_to_fit()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::shrink_to_fit()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::shrink_to_fit()
216
217
    /** Construct a new element at the end of the deque. */
218
    template<typename... Args>
219
    void emplace_back(Args&&... args)
220
0
    {
221
0
        if (m_size == m_capacity) Reallocate((m_size + 1) * 2);
222
0
        std::construct_at(m_buffer + BufferIndex(m_size), std::forward<Args>(args)...);
223
0
        ++m_size;
224
0
    }
Unexecuted instantiation: void VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::emplace_back<cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>, bitset_detail::IntBitSet<unsigned int>, FeeFrac>(cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>&&, bitset_detail::IntBitSet<unsigned int>&&, FeeFrac&&)
Unexecuted instantiation: void VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::emplace_back<cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>, bitset_detail::MultiIntBitSet<unsigned long, 2u>, FeeFrac>(cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>&&, bitset_detail::MultiIntBitSet<unsigned long, 2u>&&, FeeFrac&&)
Unexecuted instantiation: void VecDeque<unsigned char>::emplace_back<unsigned char const&>(unsigned char const&)
Unexecuted instantiation: void VecDeque<unsigned char>::emplace_back<unsigned char>(unsigned char&&)
Unexecuted instantiation: void VecDeque<unsigned char>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<unsigned short>::emplace_back<unsigned short const&>(unsigned short const&)
Unexecuted instantiation: void VecDeque<unsigned short>::emplace_back<unsigned short>(unsigned short&&)
Unexecuted instantiation: void VecDeque<unsigned short>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<unsigned int>::emplace_back<unsigned int const&>(unsigned int const&)
Unexecuted instantiation: void VecDeque<unsigned int>::emplace_back<unsigned int>(unsigned int&&)
Unexecuted instantiation: void VecDeque<unsigned int>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<unsigned long long>::emplace_back<unsigned long long const&>(unsigned long long const&)
Unexecuted instantiation: void VecDeque<unsigned long long>::emplace_back<unsigned long long>(unsigned long long&&)
Unexecuted instantiation: void VecDeque<unsigned long long>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<1ul>>::emplace_back<(anonymous namespace)::TrackedObj<1ul> const&>((anonymous namespace)::TrackedObj<1ul> const&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<1ul>>::emplace_back<(anonymous namespace)::TrackedObj<1ul>>((anonymous namespace)::TrackedObj<1ul>&&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<1ul>>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<3ul>>::emplace_back<(anonymous namespace)::TrackedObj<3ul> const&>((anonymous namespace)::TrackedObj<3ul> const&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<3ul>>::emplace_back<(anonymous namespace)::TrackedObj<3ul>>((anonymous namespace)::TrackedObj<3ul>&&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<3ul>>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<17ul>>::emplace_back<(anonymous namespace)::TrackedObj<17ul> const&>((anonymous namespace)::TrackedObj<17ul> const&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<17ul>>::emplace_back<(anonymous namespace)::TrackedObj<17ul>>((anonymous namespace)::TrackedObj<17ul>&&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<17ul>>::emplace_back<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::emplace_back<cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>, bitset_detail::IntBitSet<unsigned long>, FeeFrac>(cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>&&, bitset_detail::IntBitSet<unsigned long>&&, FeeFrac&&)
225
226
    /** Move-construct a new element at the end of the deque. */
227
0
    void push_back(T&& elem) { emplace_back(std::move(elem)); }
Unexecuted instantiation: VecDeque<unsigned char>::push_back(unsigned char&&)
Unexecuted instantiation: VecDeque<unsigned short>::push_back(unsigned short&&)
Unexecuted instantiation: VecDeque<unsigned int>::push_back(unsigned int&&)
Unexecuted instantiation: VecDeque<unsigned long long>::push_back(unsigned long long&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::push_back((anonymous namespace)::TrackedObj<1ul>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::push_back((anonymous namespace)::TrackedObj<3ul>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::push_back((anonymous namespace)::TrackedObj<17ul>&&)
228
229
    /** Copy-construct a new element at the end of the deque. */
230
0
    void push_back(const T& elem) { emplace_back(elem); }
Unexecuted instantiation: VecDeque<unsigned char>::push_back(unsigned char const&)
Unexecuted instantiation: VecDeque<unsigned short>::push_back(unsigned short const&)
Unexecuted instantiation: VecDeque<unsigned int>::push_back(unsigned int const&)
Unexecuted instantiation: VecDeque<unsigned long long>::push_back(unsigned long long const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::push_back((anonymous namespace)::TrackedObj<1ul> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::push_back((anonymous namespace)::TrackedObj<3ul> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::push_back((anonymous namespace)::TrackedObj<17ul> const&)
231
232
    /** Construct a new element at the beginning of the deque. */
233
    template<typename... Args>
234
    void emplace_front(Args&&... args)
235
0
    {
236
0
        if (m_size == m_capacity) Reallocate((m_size + 1) * 2);
237
0
        std::construct_at(m_buffer + BufferIndex(m_capacity - 1), std::forward<Args>(args)...);
238
0
        if (m_offset == 0) m_offset = m_capacity;
239
0
        --m_offset;
240
0
        ++m_size;
241
0
    }
Unexecuted instantiation: void VecDeque<unsigned char>::emplace_front<unsigned char const&>(unsigned char const&)
Unexecuted instantiation: void VecDeque<unsigned char>::emplace_front<unsigned char>(unsigned char&&)
Unexecuted instantiation: void VecDeque<unsigned char>::emplace_front<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<unsigned short>::emplace_front<unsigned short const&>(unsigned short const&)
Unexecuted instantiation: void VecDeque<unsigned short>::emplace_front<unsigned short>(unsigned short&&)
Unexecuted instantiation: void VecDeque<unsigned short>::emplace_front<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<unsigned int>::emplace_front<unsigned int const&>(unsigned int const&)
Unexecuted instantiation: void VecDeque<unsigned int>::emplace_front<unsigned int>(unsigned int&&)
Unexecuted instantiation: void VecDeque<unsigned int>::emplace_front<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: void VecDeque<unsigned long long>::emplace_front<unsigned long long const&>(unsigned long long const&)
Unexecuted instantiation: void VecDeque<unsigned long long>::emplace_front<unsigned long long>(unsigned long long&&)
Unexecuted instantiation: void VecDeque<unsigned long long>::emplace_front<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<1ul>>::emplace_front<(anonymous namespace)::TrackedObj<1ul> const&>((anonymous namespace)::TrackedObj<1ul> const&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<1ul>>::emplace_front<(anonymous namespace)::TrackedObj<1ul>>((anonymous namespace)::TrackedObj<1ul>&&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<1ul>>::emplace_front<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<3ul>>::emplace_front<(anonymous namespace)::TrackedObj<3ul> const&>((anonymous namespace)::TrackedObj<3ul> const&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<3ul>>::emplace_front<(anonymous namespace)::TrackedObj<3ul>>((anonymous namespace)::TrackedObj<3ul>&&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<3ul>>::emplace_front<unsigned long long&>(unsigned long long&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<17ul>>::emplace_front<(anonymous namespace)::TrackedObj<17ul> const&>((anonymous namespace)::TrackedObj<17ul> const&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<17ul>>::emplace_front<(anonymous namespace)::TrackedObj<17ul>>((anonymous namespace)::TrackedObj<17ul>&&)
Unexecuted instantiation: vecdeque.cpp:void VecDeque<(anonymous namespace)::TrackedObj<17ul>>::emplace_front<unsigned long long&>(unsigned long long&)
242
243
    /** Copy-construct a new element at the beginning of the deque. */
244
0
    void push_front(const T& elem) { emplace_front(elem); }
Unexecuted instantiation: VecDeque<unsigned char>::push_front(unsigned char const&)
Unexecuted instantiation: VecDeque<unsigned short>::push_front(unsigned short const&)
Unexecuted instantiation: VecDeque<unsigned int>::push_front(unsigned int const&)
Unexecuted instantiation: VecDeque<unsigned long long>::push_front(unsigned long long const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::push_front((anonymous namespace)::TrackedObj<1ul> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::push_front((anonymous namespace)::TrackedObj<3ul> const&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::push_front((anonymous namespace)::TrackedObj<17ul> const&)
245
246
    /** Move-construct a new element at the beginning of the deque. */
247
0
    void push_front(T&& elem) { emplace_front(std::move(elem)); }
Unexecuted instantiation: VecDeque<unsigned char>::push_front(unsigned char&&)
Unexecuted instantiation: VecDeque<unsigned short>::push_front(unsigned short&&)
Unexecuted instantiation: VecDeque<unsigned int>::push_front(unsigned int&&)
Unexecuted instantiation: VecDeque<unsigned long long>::push_front(unsigned long long&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::push_front((anonymous namespace)::TrackedObj<1ul>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::push_front((anonymous namespace)::TrackedObj<3ul>&&)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::push_front((anonymous namespace)::TrackedObj<17ul>&&)
248
249
    /** Remove the first element of the deque. Requires !empty(). */
250
    void pop_front()
251
0
    {
252
0
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
253
0
        std::destroy_at(m_buffer + m_offset);
254
0
        --m_size;
255
0
        ++m_offset;
256
0
        if (m_offset == m_capacity) m_offset = 0;
257
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::pop_front()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::pop_front()
Unexecuted instantiation: VecDeque<unsigned char>::pop_front()
Unexecuted instantiation: VecDeque<unsigned short>::pop_front()
Unexecuted instantiation: VecDeque<unsigned int>::pop_front()
Unexecuted instantiation: VecDeque<unsigned long long>::pop_front()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::pop_front()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::pop_front()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::pop_front()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::pop_front()
258
259
    /** Remove the last element of the deque. Requires !empty(). */
260
    void pop_back()
261
0
    {
262
0
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
263
0
        std::destroy_at(m_buffer + BufferIndex(m_size - 1));
264
0
        --m_size;
265
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::pop_back()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::pop_back()
Unexecuted instantiation: VecDeque<unsigned char>::pop_back()
Unexecuted instantiation: VecDeque<unsigned short>::pop_back()
Unexecuted instantiation: VecDeque<unsigned int>::pop_back()
Unexecuted instantiation: VecDeque<unsigned long long>::pop_back()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::pop_back()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::pop_back()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::pop_back()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::pop_back()
266
267
    /** Get a mutable reference to the first element of the deque. Requires !empty(). */
268
    T& front() noexcept
269
0
    {
270
0
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
271
0
        return m_buffer[m_offset];
272
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::front()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::front()
Unexecuted instantiation: VecDeque<unsigned char>::front()
Unexecuted instantiation: VecDeque<unsigned short>::front()
Unexecuted instantiation: VecDeque<unsigned int>::front()
Unexecuted instantiation: VecDeque<unsigned long long>::front()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::front()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::front()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::front()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::front()
273
274
    /** Get a const reference to the first element of the deque. Requires !empty(). */
275
    const T& front() const noexcept
276
0
    {
277
0
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
278
0
        return m_buffer[m_offset];
279
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::front() const
Unexecuted instantiation: VecDeque<unsigned short>::front() const
Unexecuted instantiation: VecDeque<unsigned int>::front() const
Unexecuted instantiation: VecDeque<unsigned long long>::front() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::front() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::front() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::front() const
280
281
    /** Get a mutable reference to the last element of the deque. Requires !empty(). */
282
    T& back() noexcept
283
0
    {
284
0
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
285
0
        return m_buffer[BufferIndex(m_size - 1)];
286
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::back()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::back()
Unexecuted instantiation: VecDeque<unsigned char>::back()
Unexecuted instantiation: VecDeque<unsigned short>::back()
Unexecuted instantiation: VecDeque<unsigned int>::back()
Unexecuted instantiation: VecDeque<unsigned long long>::back()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::back()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::back()
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::back()
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::back()
287
288
    /** Get a const reference to the last element of the deque. Requires !empty(). */
289
    const T& back() const noexcept
290
0
    {
291
0
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
292
0
        return m_buffer[BufferIndex(m_size - 1)];
293
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::back() const
Unexecuted instantiation: VecDeque<unsigned short>::back() const
Unexecuted instantiation: VecDeque<unsigned int>::back() const
Unexecuted instantiation: VecDeque<unsigned long long>::back() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::back() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::back() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::back() const
294
295
    /** Get a mutable reference to the element in the deque at the given index. Requires idx < size(). */
296
    T& operator[](size_t idx) noexcept
297
0
    {
298
0
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
299
0
        return m_buffer[BufferIndex(idx)];
300
0
    }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::operator[](unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::operator[](unsigned long)
Unexecuted instantiation: VecDeque<unsigned char>::operator[](unsigned long)
Unexecuted instantiation: VecDeque<unsigned short>::operator[](unsigned long)
Unexecuted instantiation: VecDeque<unsigned int>::operator[](unsigned long)
Unexecuted instantiation: VecDeque<unsigned long long>::operator[](unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::operator[](unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::operator[](unsigned long)
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::operator[](unsigned long)
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::operator[](unsigned long)
301
302
    /** Get a const reference to the element in the deque at the given index. Requires idx < size(). */
303
    const T& operator[](size_t idx) const noexcept
304
0
    {
305
0
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
        Assume(idx < m_size);
Line
Count
Source
125
0
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
306
0
        return m_buffer[BufferIndex(idx)];
307
0
    }
Unexecuted instantiation: VecDeque<unsigned char>::operator[](unsigned long) const
Unexecuted instantiation: VecDeque<unsigned short>::operator[](unsigned long) const
Unexecuted instantiation: VecDeque<unsigned int>::operator[](unsigned long) const
Unexecuted instantiation: VecDeque<unsigned long long>::operator[](unsigned long) const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::operator[](unsigned long) const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::operator[](unsigned long) const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::operator[](unsigned long) const
308
309
    /** Test whether the contents of this deque is empty. */
310
0
    bool empty() const noexcept { return m_size == 0; }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::empty() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::empty() const
Unexecuted instantiation: VecDeque<unsigned char>::empty() const
Unexecuted instantiation: VecDeque<unsigned short>::empty() const
Unexecuted instantiation: VecDeque<unsigned int>::empty() const
Unexecuted instantiation: VecDeque<unsigned long long>::empty() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::empty() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::empty() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::empty() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::empty() const
311
    /** Get the number of elements in this deque. */
312
0
    size_t size() const noexcept { return m_size; }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::size() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::size() const
Unexecuted instantiation: VecDeque<unsigned char>::size() const
Unexecuted instantiation: VecDeque<unsigned short>::size() const
Unexecuted instantiation: VecDeque<unsigned int>::size() const
Unexecuted instantiation: VecDeque<unsigned long long>::size() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::size() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::size() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::size() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::size() const
313
    /** Get the capacity of this deque (maximum size it can have without reallocating). */
314
0
    size_t capacity() const noexcept { return m_capacity; }
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned int>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned int>>)::WorkItem>::capacity() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::MultiIntBitSet<unsigned long, 2u>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::MultiIntBitSet<unsigned long, 2u>>)::WorkItem>::capacity() const
Unexecuted instantiation: VecDeque<unsigned char>::capacity() const
Unexecuted instantiation: VecDeque<unsigned short>::capacity() const
Unexecuted instantiation: VecDeque<unsigned int>::capacity() const
Unexecuted instantiation: VecDeque<unsigned long long>::capacity() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<1ul>>::capacity() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<3ul>>::capacity() const
Unexecuted instantiation: vecdeque.cpp:VecDeque<(anonymous namespace)::TrackedObj<17ul>>::capacity() const
Unexecuted instantiation: VecDeque<cluster_linearize::SearchCandidateFinder<bitset_detail::IntBitSet<unsigned long>>::FindCandidateSet(unsigned long long, cluster_linearize::SetInfo<bitset_detail::IntBitSet<unsigned long>>)::WorkItem>::capacity() const
315
};
316
317
#endif // BITCOIN_UTIL_VECDEQUE_H