diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2014-07-07 17:39:31 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2014-07-07 17:39:31 +0000 |
commit | 2ef0c30d2101ca6521b7ecbdd17e4fbcca09a951 (patch) | |
tree | 362337877acfa4824664514a5a3b54216bc670c1 /lib/msan/msan_allocator.cc | |
parent | 58dd99ec88cc51a5a1adcd4eddff212576a9067c (diff) |
Generalize sanitizer allocator public interface.
Introduce new public header <sanitizer/allocator_interface.h> and a set
of functions __sanitizer_get_ownership(), __sanitizer_malloc_hook() etc.
that will eventually replace their tool-specific equivalents
(__asan_get_ownership(), __msan_get_ownership() etc.). Tool-specific
functions are now deprecated and implemented as stubs redirecting
to __sanitizer_ versions (which are implemented differently in each tool).
Replace all uses of __xsan_ versions with __sanitizer_ versions in unit
and lit tests.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@212469 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/msan_allocator.cc')
-rw-r--r-- | lib/msan/msan_allocator.cc | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/lib/msan/msan_allocator.cc b/lib/msan/msan_allocator.cc index cb8af279d..fb1788f2a 100644 --- a/lib/msan/msan_allocator.cc +++ b/lib/msan/msan_allocator.cc @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "sanitizer_common/sanitizer_allocator.h" +#include "sanitizer_common/sanitizer_allocator_interface.h" #include "sanitizer_common/sanitizer_stackdepot.h" #include "msan.h" #include "msan_allocator.h" @@ -182,24 +183,45 @@ static uptr AllocationSize(const void *p) { using namespace __msan; -uptr __msan_get_current_allocated_bytes() { +uptr __sanitizer_get_current_allocated_bytes() { uptr stats[AllocatorStatCount]; allocator.GetStats(stats); return stats[AllocatorStatAllocated]; } +uptr __msan_get_current_allocated_bytes() { + return __sanitizer_get_current_allocated_bytes(); +} -uptr __msan_get_heap_size() { +uptr __sanitizer_get_heap_size() { uptr stats[AllocatorStatCount]; allocator.GetStats(stats); return stats[AllocatorStatMapped]; } +uptr __msan_get_heap_size() { + return __sanitizer_get_heap_size(); +} -uptr __msan_get_free_bytes() { return 1; } +uptr __sanitizer_get_free_bytes() { return 1; } +uptr __msan_get_free_bytes() { + return __sanitizer_get_free_bytes(); +} -uptr __msan_get_unmapped_bytes() { return 1; } +uptr __sanitizer_get_unmapped_bytes() { return 1; } +uptr __msan_get_unmapped_bytes() { + return __sanitizer_get_unmapped_bytes(); +} -uptr __msan_get_estimated_allocated_size(uptr size) { return size; } +uptr __sanitizer_get_estimated_allocated_size(uptr size) { return size; } +uptr __msan_get_estimated_allocated_size(uptr size) { + return __sanitizer_get_estimated_allocated_size(size); +} -int __msan_get_ownership(const void *p) { return AllocationSize(p) != 0; } +int __sanitizer_get_ownership(const void *p) { return AllocationSize(p) != 0; } +int __msan_get_ownership(const void *p) { + return __sanitizer_get_ownership(p); +} -uptr __msan_get_allocated_size(const void *p) { return AllocationSize(p); } +uptr __sanitizer_get_allocated_size(const void *p) { return AllocationSize(p); } +uptr __msan_get_allocated_size(const void *p) { + return __sanitizer_get_allocated_size(p); +} |