diff options
author | Alexey Samsonov <samsonov@google.com> | 2012-02-02 10:39:40 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2012-02-02 10:39:40 +0000 |
commit | f2598fc21bf651d23feab396a7581d48c01c3be5 (patch) | |
tree | ff3ca7bdcde9fba8e82adb180fc903a7bca6c736 /lib/asan/asan_malloc_linux.cc | |
parent | 573fb4b102dda9d231a8dbd0c01e67e84e9b0874 (diff) |
AddressSanitizer: Add macro for definition/declaration of interceptors
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@149602 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/asan_malloc_linux.cc')
-rw-r--r-- | lib/asan/asan_malloc_linux.cc | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/lib/asan/asan_malloc_linux.cc b/lib/asan/asan_malloc_linux.cc index acad5742a..4547041fd 100644 --- a/lib/asan/asan_malloc_linux.cc +++ b/lib/asan/asan_malloc_linux.cc @@ -54,27 +54,22 @@ void ReplaceSystemMalloc() { // ---------------------- Replacement functions ---------------- {{{1 using namespace __asan; // NOLINT -extern "C" { -INTERCEPTOR_ATTRIBUTE -void free(void *ptr) { +INTERCEPTOR(void, free, void *ptr) { GET_STACK_TRACE_HERE_FOR_FREE(ptr); asan_free(ptr, &stack); } -INTERCEPTOR_ATTRIBUTE -void cfree(void *ptr) { +INTERCEPTOR(void, cfree, void *ptr) { GET_STACK_TRACE_HERE_FOR_FREE(ptr); asan_free(ptr, &stack); } -INTERCEPTOR_ATTRIBUTE -void *malloc(size_t size) { +INTERCEPTOR(void*, malloc, size_t size) { GET_STACK_TRACE_HERE_FOR_MALLOC; return asan_malloc(size, &stack); } -INTERCEPTOR_ATTRIBUTE -void *calloc(size_t nmemb, size_t size) { +INTERCEPTOR(void*, calloc, size_t nmemb, size_t size) { if (!asan_inited) { // Hack: dlsym calls calloc before real_calloc is retrieved from dlsym. const size_t kCallocPoolSize = 1024; @@ -90,57 +85,48 @@ void *calloc(size_t nmemb, size_t size) { return asan_calloc(nmemb, size, &stack); } -INTERCEPTOR_ATTRIBUTE -void *realloc(void *ptr, size_t size) { +INTERCEPTOR(void*, realloc, void *ptr, size_t size) { GET_STACK_TRACE_HERE_FOR_MALLOC; return asan_realloc(ptr, size, &stack); } -INTERCEPTOR_ATTRIBUTE -void *memalign(size_t boundary, size_t size) { +INTERCEPTOR(void*, memalign, size_t boundary, size_t size) { GET_STACK_TRACE_HERE_FOR_MALLOC; return asan_memalign(boundary, size, &stack); } -void* __libc_memalign(size_t align, size_t s) +INTERCEPTOR(void*, __libc_memalign, size_t align, size_t s) __attribute__((alias("memalign"))); -INTERCEPTOR_ATTRIBUTE -size_t malloc_usable_size(void *ptr) { +INTERCEPTOR(size_t, malloc_usable_size, void *ptr) { GET_STACK_TRACE_HERE_FOR_MALLOC; return asan_malloc_usable_size(ptr, &stack); } -INTERCEPTOR_ATTRIBUTE -struct mallinfo mallinfo() { +INTERCEPTOR(struct mallinfo, mallinfo) { struct mallinfo res; real_memset(&res, 0, sizeof(res)); return res; } -INTERCEPTOR_ATTRIBUTE -int mallopt(int cmd, int value) { +INTERCEPTOR(int, mallopt, int cmd, int value) { return -1; } -INTERCEPTOR_ATTRIBUTE -int posix_memalign(void **memptr, size_t alignment, size_t size) { +INTERCEPTOR(int, posix_memalign, void **memptr, size_t alignment, size_t size) { GET_STACK_TRACE_HERE_FOR_MALLOC; // Printf("posix_memalign: %lx %ld\n", alignment, size); return asan_posix_memalign(memptr, alignment, size, &stack); } -INTERCEPTOR_ATTRIBUTE -void *valloc(size_t size) { +INTERCEPTOR(void*, valloc, size_t size) { GET_STACK_TRACE_HERE_FOR_MALLOC; return asan_valloc(size, &stack); } -INTERCEPTOR_ATTRIBUTE -void *pvalloc(size_t size) { +INTERCEPTOR(void*, pvalloc, size_t size) { GET_STACK_TRACE_HERE_FOR_MALLOC; return asan_pvalloc(size, &stack); } -} // extern "C" #endif // __linux__ |