1 #ifndef BFG_COMPRESSED_COVERAGE_HPP 2 #define BFG_COMPRESSED_COVERAGE_HPP 44 void initialize(
const size_t sz,
const bool full);
46 void cover(
size_t start,
size_t end);
47 uint8_t covAt(
const size_t index)
const;
52 vector<pair<int, int>> splittingVector()
const;
53 pair<size_t, size_t> lowCoverageInfo()
const;
56 std::string toString()
const;
58 static const size_t size_limit = 28;
59 static const size_t cov_full = 2;
63 static const uintptr_t tagMask = 1;
64 static const uintptr_t fullMask = 2;
65 static const uintptr_t sizeMask = 0xFC;
66 static const uintptr_t localCoverageMask = 0xAAAAAAAAAAAAAA;
67 static const uintptr_t pointerMask = ~(tagMask | fullMask);
69 inline size_t round_to_bytes(
const size_t len)
const {
return (len + 3) / 4; }
71 inline uint8_t *get8Pointer()
const {
return reinterpret_cast<uint8_t *
>(asBits & pointerMask); }
72 inline uint32_t *get32Pointer()
const {
return reinterpret_cast<uint32_t *
>(asBits & pointerMask); }
73 inline const uint32_t *getConst32Pointer()
const {
return reinterpret_cast<const uint32_t *
>(asBits & pointerMask); }
75 void releasePointer();
88 inline const T* getData()
const {
return &data; }
89 inline T* getData() {
return &data; }
90 inline void setData(
const T*
const data_){ data = *data_; }
101 inline const void* getData()
const {
return nullptr; }
102 inline void* getData() {
return nullptr; }
103 inline void setData(
const void*
const data_){
return; }
109 #endif // BFG_COMPRESSED_COVERAGE_HPP Definition: CompressedCoverage.hpp:29
Definition: CompressedCoverage.hpp:84