Coverage Report

Created: 2026-05-16 06:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/fuzzing-headers/include/fuzzing/memory.hpp
Line
Count
Source
1
#pragma once
2
3
#include <stdio.h>
4
#include <optional>
5
6
namespace fuzzing {
7
namespace memory {
8
9
#ifndef FUZZING_HEADERS_NO_IMPL
10
#if ASAN == 1
11
extern "C" void *__asan_region_is_poisoned(const void *beg, size_t size);
12
#endif
13
14
#if MSAN == 1
15
extern "C" void __msan_check_mem_is_initialized(const volatile void *x, size_t size);
16
#endif
17
18
void memory_test_asan(const void* data, const size_t size)
19
0
{
20
0
    (void)data;
21
0
    (void)size;
22
23
#if ASAN == 1
24
    if ( __asan_region_is_poisoned(data, size) != NULL ) {
25
        abort();
26
    }
27
#endif
28
0
}
29
30
void memory_test_msan(const void* data, const size_t size)
31
0
{
32
0
    (void)data;
33
0
    (void)size;
34
35
#if MSAN == 1
36
    __msan_check_mem_is_initialized(data, size);
37
#endif
38
0
}
39
40
void memory_test(const void* data, const size_t size)
41
0
{
42
0
    memory_test_asan(data, size);
43
0
    memory_test_msan(data, size);
44
0
}
45
46
template <class T>
47
void memory_test(const T& t)
48
{
49
    (void)t;
50
}
51
52
template <>
53
void memory_test(const std::string& s)
54
0
{
55
0
    (void)s;
56
57
#if MSAN == 1
58
    memory_test(s.data(), s.size());
59
#endif
60
0
}
61
62
#endif
63
64
} /* namespace memory */
65
} /* namespace fuzzing */