diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2014-12-19 20:35:53 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2014-12-19 20:35:53 +0000 |
commit | a7d265546807ffc763cb634fe0c1efaa74955ed9 (patch) | |
tree | 389f65c773434317dbf23724d6eadb94f7089d42 /lib/sanitizer_common/sanitizer_allocator.h | |
parent | 262ebb726c15f7d11fe24566b6486fe4422b97a4 (diff) |
[ASan] Change activation strategy.
Now ASan deactivation doesn't modify common or ASan-specific runtime
flags. Flags stay constant after initialization, and "deactivation"
instead stashes initialized runtime state, and deactivates the
runtime. Activation then just restores the original state (possibly,
overriden by some activation flags provided in system property on
Android).
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@224614 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_allocator.h')
-rw-r--r-- | lib/sanitizer_common/sanitizer_allocator.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/sanitizer_common/sanitizer_allocator.h b/lib/sanitizer_common/sanitizer_allocator.h index d3723eb1d..d749acb90 100644 --- a/lib/sanitizer_common/sanitizer_allocator.h +++ b/lib/sanitizer_common/sanitizer_allocator.h @@ -1300,8 +1300,12 @@ class CombinedAllocator { return res; } + bool MayReturnNull() const { + return atomic_load(&may_return_null_, memory_order_acquire); + } + void *ReturnNullOrDie() { - if (atomic_load(&may_return_null_, memory_order_acquire)) + if (MayReturnNull()) return 0; ReportAllocatorCannotReturnNull(); } |