diff options
author | Kostya Serebryany <kcc@google.com> | 2014-05-06 14:41:01 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2014-05-06 14:41:01 +0000 |
commit | 056fa2293af34285767cbd118596f0accfd8cd5b (patch) | |
tree | f8161b5afa3525d1a62d1f7d66288e6b791cd1f2 /test/asan/TestCases/contiguous_container.cc | |
parent | 9d7ac84bcf38574ad935b45f0ec41c18f87818f5 (diff) |
[asan] introduce interface function __sanitizer_verify_contiguous_container to verify annotations in vector-like containers
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@208092 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/asan/TestCases/contiguous_container.cc')
-rw-r--r-- | test/asan/TestCases/contiguous_container.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/test/asan/TestCases/contiguous_container.cc b/test/asan/TestCases/contiguous_container.cc index e02f0e5eb..8d8c8d049 100644 --- a/test/asan/TestCases/contiguous_container.cc +++ b/test/asan/TestCases/contiguous_container.cc @@ -6,12 +6,7 @@ #include <stdio.h> #include <string.h> #include <assert.h> - -extern "C" { -void __sanitizer_annotate_contiguous_container(void *beg, void *end, - void *old_mid, void *new_mid); -bool __asan_address_is_poisoned(void *addr); -} // extern "C" +#include <sanitizer/asan_interface.h> void TestContainer(size_t capacity) { char *beg = new char[capacity]; @@ -30,6 +25,11 @@ void TestContainer(size_t capacity) { assert(!__asan_address_is_poisoned(beg + idx)); for (size_t idx = size; idx < capacity; idx++) assert(__asan_address_is_poisoned(beg + idx)); + assert(__sanitizer_verify_contiguous_container(beg, mid, end)); + if (mid != beg) + assert(!__sanitizer_verify_contiguous_container(beg, mid - 1, end)); + if (mid != end) + assert(!__sanitizer_verify_contiguous_container(beg, mid + 1, end)); } // Don't forget to unpoison the whole thing before destroing/reallocating. |