diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2015-10-12 23:20:24 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2015-10-12 23:20:24 +0000 |
commit | 00ba8b29dc0d744529b98b34c698da437d354a6c (patch) | |
tree | f1ea0311f9858661c41118053fc3b80ada122438 /lib/msan | |
parent | 83eb8a52f9e739adfde4d248b5a985f37cc2325b (diff) |
[msan] Add __msan_copy_shadow interface function.
This can be used to annotate copies of memory that are not observed by MSan.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@250124 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan')
-rw-r--r-- | lib/msan/msan_interceptors.cc | 5 | ||||
-rw-r--r-- | lib/msan/msan_interface_internal.h | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/msan/msan_interceptors.cc b/lib/msan/msan_interceptors.cc index f363c2695..1bf196ecd 100644 --- a/lib/msan/msan_interceptors.cc +++ b/lib/msan/msan_interceptors.cc @@ -1011,6 +1011,11 @@ void __msan_allocated_memory(const void *data, uptr size) { } } +void __msan_copy_shadow(void *dest, const void *src, uptr n) { + GET_STORE_STACK_TRACE; + MoveShadowAndOrigin(dest, src, n, &stack); +} + void __sanitizer_dtor_callback(const void *data, uptr size) { GET_MALLOC_STACK_TRACE; if (flags()->poison_in_dtor) { diff --git a/lib/msan/msan_interface_internal.h b/lib/msan/msan_interface_internal.h index 7340a34ca..c1e02ce72 100644 --- a/lib/msan/msan_interface_internal.h +++ b/lib/msan/msan_interface_internal.h @@ -161,6 +161,9 @@ void __sanitizer_unaligned_store64(uu64 *p, u64 x); SANITIZER_INTERFACE_ATTRIBUTE void __msan_set_death_callback(void (*callback)(void)); + +SANITIZER_INTERFACE_ATTRIBUTE +void __msan_copy_shadow(void *dst, const void *src, uptr size); } // extern "C" #endif // MSAN_INTERFACE_INTERNAL_H |