summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_allocator.h
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2014-12-19 20:35:53 +0000
committerAlexey Samsonov <vonosmas@gmail.com>2014-12-19 20:35:53 +0000
commita7d265546807ffc763cb634fe0c1efaa74955ed9 (patch)
tree389f65c773434317dbf23724d6eadb94f7089d42 /lib/sanitizer_common/sanitizer_allocator.h
parent262ebb726c15f7d11fe24566b6486fe4422b97a4 (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.h6
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();
}