summaryrefslogtreecommitdiff
path: root/include/sanitizer
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2014-05-06 14:41:01 +0000
committerKostya Serebryany <kcc@google.com>2014-05-06 14:41:01 +0000
commit056fa2293af34285767cbd118596f0accfd8cd5b (patch)
treef8161b5afa3525d1a62d1f7d66288e6b791cd1f2 /include/sanitizer
parent9d7ac84bcf38574ad935b45f0ec41c18f87818f5 (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 'include/sanitizer')
-rw-r--r--include/sanitizer/common_interface_defs.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/sanitizer/common_interface_defs.h b/include/sanitizer/common_interface_defs.h
index 798f0c52f..fa3c14d1b 100644
--- a/include/sanitizer/common_interface_defs.h
+++ b/include/sanitizer/common_interface_defs.h
@@ -86,6 +86,14 @@ extern "C" {
const void *end,
const void *old_mid,
const void *new_mid);
+ // Returns true if the contiguous container [beg, end) ir properly poisoned
+ // (e.g. with __sanitizer_annotate_contiguous_container), i.e. if
+ // - [beg, mid) is addressable,
+ // - [mid, end) is unaddressable.
+ // Full verification requires O(end-beg) time; this function tries to avoid
+ // such complexity by touching only parts of the container around beg/mid/end.
+ int __sanitizer_verify_contiguous_container(const void *beg, const void *mid,
+ const void *end);
// Print the stack trace leading to this call. Useful for debugging user code.
void __sanitizer_print_stack_trace();