annotate libsanitizer/asan/asan_interceptors_memintrinsics.cpp @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 //===-- asan_interceptors_memintrinsics.cpp -------------------------------===//
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 //
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 // See https://llvm.org/LICENSE.txt for license information.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 //
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 //===---------------------------------------------------------------------===//
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 //
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 // This file is a part of AddressSanitizer, an address sanity checker.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 //
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 // ASan versions of memcpy, memmove, and memset.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 //===---------------------------------------------------------------------===//
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 #include "asan_interceptors_memintrinsics.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 #include "asan_report.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 #include "asan_stack.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 #include "asan_suppressions.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 using namespace __asan;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 void *__asan_memcpy(void *to, const void *from, uptr size) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 ASAN_MEMCPY_IMPL(nullptr, to, from, size);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 void *__asan_memset(void *block, int c, uptr size) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 ASAN_MEMSET_IMPL(nullptr, block, c, size);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 void *__asan_memmove(void *to, const void *from, uptr size) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 ASAN_MEMMOVE_IMPL(nullptr, to, from, size);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 #if SANITIZER_FUCHSIA || SANITIZER_RTEMS
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 // Fuchsia and RTEMS don't use sanitizer_common_interceptors.inc, but
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 // the only things there it wants are these three. Just define them
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37 // as aliases here rather than repeating the contents.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 extern "C" decltype(__asan_memcpy) memcpy[[gnu::alias("__asan_memcpy")]];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 extern "C" decltype(__asan_memmove) memmove[[gnu::alias("__asan_memmove")]];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 extern "C" decltype(__asan_memset) memset[[gnu::alias("__asan_memset")]];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 #endif // SANITIZER_FUCHSIA || SANITIZER_RTEMS