[compiler-rt] ad663be - [test][asan] Deduplicate code
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 27 15:27:14 PST 2022
Author: Vitaly Buka
Date: 2022-11-27T15:26:23-08:00
New Revision: ad663be76fc187b504275860e28de4979771bca7
URL: https://github.com/llvm/llvm-project/commit/ad663be76fc187b504275860e28de4979771bca7
DIFF: https://github.com/llvm/llvm-project/commit/ad663be76fc187b504275860e28de4979771bca7.diff
LOG: [test][asan] Deduplicate code
Added:
Modified:
compiler-rt/test/asan/TestCases/contiguous_container.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/asan/TestCases/contiguous_container.cpp b/compiler-rt/test/asan/TestCases/contiguous_container.cpp
index feb7063a2dd28..d2b7d4cafebb9 100644
--- a/compiler-rt/test/asan/TestCases/contiguous_container.cpp
+++ b/compiler-rt/test/asan/TestCases/contiguous_container.cpp
@@ -54,23 +54,27 @@ void TestContainer(size_t capacity, size_t off_begin, bool poison_buffer) {
end = st_beg + i;
__sanitizer_annotate_contiguous_container(st_beg, st_end, old_end, end);
- for (char *cur = std::max(st_beg, st_end - 2 * kGranularity);
- cur <= std::min(st_end, end + 2 * kGranularity); ++cur) {
+ char *cur_first = std::max(end - 2 * kGranularity, st_beg);
+ char *cur_last = std::min(end + 2 * kGranularity, st_end);
+ for (char *cur = cur_first; cur <= cur_last; ++cur) {
+ bool is_valid =
+ __sanitizer_verify_contiguous_container(st_beg, cur, st_end);
+ const void *bad_address =
+ __sanitizer_contiguous_container_find_bad_address(st_beg, cur,
+ st_end);
+
if (cur == end ||
// Any end in the last unaligned granule is OK, if bytes after the
// storage are not poisoned.
(!poison_buffer && RoundDown(st_end) <= std::min(cur, end))) {
- assert(__sanitizer_verify_contiguous_container(st_beg, cur, st_end));
- assert(NULL == __sanitizer_contiguous_container_find_bad_address(
- st_beg, cur, st_end));
+ assert(is_valid);
+ assert(!bad_address);
} else if (cur < end) {
- assert(!__sanitizer_verify_contiguous_container(st_beg, cur, st_end));
- assert(cur == __sanitizer_contiguous_container_find_bad_address(
- st_beg, cur, st_end));
+ assert(!is_valid);
+ assert(cur == bad_address);
} else {
- assert(!__sanitizer_verify_contiguous_container(st_beg, cur, st_end));
- assert(end == __sanitizer_contiguous_container_find_bad_address(
- st_beg, cur, st_end));
+ assert(!is_valid);
+ assert(end == bad_address);
}
}
}
More information about the llvm-commits
mailing list