diff options
| author | Matt Morehouse <mascasa@google.com> | 2018-07-06 17:10:51 +0000 |
|---|---|---|
| committer | Matt Morehouse <mascasa@google.com> | 2018-07-06 17:10:51 +0000 |
| commit | 373d6ed7cf24e28de441cfeef4d14c4c0a20c905 (patch) | |
| tree | d96f1b54afccd84dcd639978b2417c113e71ddb5 /compiler-rt/lib/msan | |
| parent | becbb87553123b288a74a695d5355c87b5f49846 (diff) | |
| download | bcm5719-llvm-373d6ed7cf24e28de441cfeef4d14c4c0a20c905.tar.gz bcm5719-llvm-373d6ed7cf24e28de441cfeef4d14c4c0a20c905.zip | |
[MSan] Add functions to enable/disable interceptor checks.
Summary:
The motivation for this change is to make libFuzzer+MSan possible
without instrumenting libFuzzer.
See https://github.com/google/sanitizers/issues/958.
Reviewers: eugenis
Reviewed By: eugenis
Subscribers: llvm-commits, kcc
Differential Revision: https://reviews.llvm.org/D48890
llvm-svn: 336447
Diffstat (limited to 'compiler-rt/lib/msan')
| -rw-r--r-- | compiler-rt/lib/msan/msan_interceptors.cc | 3 | ||||
| -rw-r--r-- | compiler-rt/lib/msan/msan_interface_internal.h | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/compiler-rt/lib/msan/msan_interceptors.cc b/compiler-rt/lib/msan/msan_interceptors.cc index 48d03813119..b3429bcf06b 100644 --- a/compiler-rt/lib/msan/msan_interceptors.cc +++ b/compiler-rt/lib/msan/msan_interceptors.cc @@ -60,6 +60,9 @@ DECLARE_REAL(void *, memset, void *dest, int c, uptr n) // True if this is a nested interceptor. static THREADLOCAL int in_interceptor_scope; +void __msan_scoped_disable_interceptor_checks() { ++in_interceptor_scope; } +void __msan_scoped_enable_interceptor_checks() { --in_interceptor_scope; } + struct InterceptorScope { InterceptorScope() { ++in_interceptor_scope; } ~InterceptorScope() { --in_interceptor_scope; } diff --git a/compiler-rt/lib/msan/msan_interface_internal.h b/compiler-rt/lib/msan/msan_interface_internal.h index c6990db243c..9a67cbc9b5f 100644 --- a/compiler-rt/lib/msan/msan_interface_internal.h +++ b/compiler-rt/lib/msan/msan_interface_internal.h @@ -174,6 +174,12 @@ void __msan_set_death_callback(void (*callback)(void)); SANITIZER_INTERFACE_ATTRIBUTE void __msan_copy_shadow(void *dst, const void *src, uptr size); + +SANITIZER_INTERFACE_ATTRIBUTE +void __msan_scoped_disable_interceptor_checks(); + +SANITIZER_INTERFACE_ATTRIBUTE +void __msan_scoped_enable_interceptor_checks(); } // extern "C" #endif // MSAN_INTERFACE_INTERNAL_H |

