llvm-project/libc
Guillaume Chatelet 77d81c2270 [libc] Fix msan/asan memcpy reentrancy
This is needed to prevent asan/msan instrumentation to redirect CopyBlock to `__asan_memcpy` (resp. `__msan_memcpy`).
These functions would then differ operation to `memcpy` which leads to reentrancy issues.

With this patch, `memcpy` is fully instrumented and covered by asan/msan.

If this turns out to be too expensive, instrumentation can be selectively or fully disabled through the use of the `__attribute__((no_sanitize(address, memory)))` annotation.

Differential Revision: https://reviews.llvm.org/D99598
2021-03-30 15:28:47 +00:00
..
AOR_v20.02 Harmonize Python shebang 2020-07-16 21:53:45 +02:00
benchmarks Fix errors in distributions 2021-02-11 21:53:50 +00:00
cmake/modules [libc][NFC] Add an alias named "check-llvmlibc" for "check-libc". 2021-03-22 16:55:34 +00:00
config [libc] Introduces gmtime_r to LLVM libc, based on C99/C2X/Single Unix Sp. 2021-03-22 14:04:05 -07:00
docs [libc] Add documentation for clang-tidy checks. 2020-07-06 18:15:35 -07:00
fuzzing [libc] Add implementations of nextafter[f|l] functions. 2021-01-05 22:32:39 -08:00
include [libc][NFC][Obvious] Add a missing dep. 2021-01-18 22:04:20 -08:00
lib [libc] Add a target "install-llvmlibc" to install LLVM libc static archive. 2021-03-22 04:45:14 +00:00
loader [libc] Setup TLS in x86_64 loader. 2020-08-07 23:19:03 -07:00
spec [libc] Introduces gmtime_r to LLVM libc, based on C99/C2X/Single Unix Sp. 2021-03-22 14:04:05 -07:00
src [libc] Fix msan/asan memcpy reentrancy 2021-03-30 15:28:47 +00:00
test [libc] Introduces gmtime_r to LLVM libc, based on C99/C2X/Single Unix Sp. 2021-03-22 14:04:05 -07:00
utils [libc] Fix msan/asan memcpy reentrancy 2021-03-30 15:28:47 +00:00
CMakeLists.txt [libc] Add a target "install-llvmlibc" to install LLVM libc static archive. 2021-03-22 04:45:14 +00:00
LICENSE.TXT Rename top-level LICENSE.txt files to LICENSE.TXT 2021-03-10 21:26:24 -08:00
README.txt

README.txt

LLVM libc
=========

This directory and its subdirectories contain source code for llvm-libc,
a retargetable implementation of the C standard library.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.