xref: /freebsd/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_memintrinsics.cpp (revision 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e)
1 //===-- tsan_interceptors_posix.cpp ---------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file is a part of ThreadSanitizer (TSan), a race detector.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #define SANITIZER_COMMON_NO_REDEFINE_BUILTINS
14 
15 #include "tsan_interceptors.h"
16 #include "tsan_interface.h"
17 
18 using namespace __tsan;
19 
20 #include "sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc"
21 
22 extern "C" {
23 
__tsan_memcpy(void * dst,const void * src,uptr size)24 void *__tsan_memcpy(void *dst, const void *src, uptr size) {
25   void *ctx;
26 #if PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE
27   COMMON_INTERCEPTOR_MEMCPY_IMPL(ctx, dst, src, size);
28 #else
29   COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, dst, src, size);
30 #endif
31 }
32 
__tsan_memset(void * dst,int c,uptr size)33 void *__tsan_memset(void *dst, int c, uptr size) {
34   void *ctx;
35   COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, dst, c, size);
36 }
37 
__tsan_memmove(void * dst,const void * src,uptr size)38 void *__tsan_memmove(void *dst, const void *src, uptr size) {
39   void *ctx;
40   COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, dst, src, size);
41 }
42 
43 }  // extern "C"
44