1 // Copyright 2021 Code Intelligence GmbH
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #include <cstddef>
16 #include <cstdint>
17
18 // Symbols exported by libFuzzer that are required by libfuzzer_callbacks and
19 // CoverageTracker.
20 extern "C" {
__sanitizer_cov_8bit_counters_init(uint8_t * start,uint8_t * end)21 void __sanitizer_cov_8bit_counters_init(uint8_t *start, uint8_t *end) {}
__sanitizer_cov_pcs_init(const uintptr_t * pcs_beg,const uintptr_t * pcs_end)22 void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
23 const uintptr_t *pcs_end) {}
__sanitizer_cov_get_observed_pcs(uintptr_t ** pc_entries)24 size_t __sanitizer_cov_get_observed_pcs(uintptr_t **pc_entries) {
25 *pc_entries = new uintptr_t[0];
26 return 0;
27 }
__sanitizer_weak_hook_memcmp(void * caller_pc,const void * s1,const void * s2,std::size_t n,int result)28 void __sanitizer_weak_hook_memcmp(void *caller_pc, const void *s1,
29 const void *s2, std::size_t n, int result) {}
__sanitizer_weak_hook_strcmp(void * caller_pc,const char * s1,const char * s2,int result)30 void __sanitizer_weak_hook_strcmp(void *caller_pc, const char *s1,
31 const char *s2, int result) {}
__sanitizer_weak_hook_compare_bytes(void * caller_pc,const void * s1,const void * s2,std::size_t n1,std::size_t n2,int result)32 void __sanitizer_weak_hook_compare_bytes(void *caller_pc, const void *s1,
33 const void *s2, std::size_t n1,
34 std::size_t n2, int result) {}
__sanitizer_weak_hook_strstr(void * caller_pc,const char * s1,const char * s2,int result)35 void __sanitizer_weak_hook_strstr(void *caller_pc, const char *s1,
36 const char *s2, int result) {}
__sanitizer_cov_trace_cmp4(uint32_t arg1,uint32_t arg2)37 void __sanitizer_cov_trace_cmp4(uint32_t arg1, uint32_t arg2) {}
__sanitizer_cov_trace_cmp8(uint64_t arg1,uint64_t arg2)38 void __sanitizer_cov_trace_cmp8(uint64_t arg1, uint64_t arg2) {}
__sanitizer_cov_trace_switch(uint64_t val,uint64_t * cases)39 void __sanitizer_cov_trace_switch(uint64_t val, uint64_t *cases) {}
__sanitizer_cov_trace_div4(uint32_t val)40 void __sanitizer_cov_trace_div4(uint32_t val) {}
__sanitizer_cov_trace_div8(uint64_t val)41 void __sanitizer_cov_trace_div8(uint64_t val) {}
__sanitizer_cov_trace_gep(uintptr_t idx)42 void __sanitizer_cov_trace_gep(uintptr_t idx) {}
__sanitizer_cov_trace_pc_indir(uintptr_t callee)43 void __sanitizer_cov_trace_pc_indir(uintptr_t callee) {}
__sanitizer_set_death_callback(void (* callback)())44 void __sanitizer_set_death_callback(void (*callback)()) {}
45 }
46