[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