1 | // Test that tagging of freed large region is 0, which is better for RSS usage. |
2 | // RUN: %clang_hwasan -mllvm -hwasan-globals=0 -mllvm -hwasan-instrument-stack=0 %s -o %t && %run %t 2>&1 |
3 | |
4 | #include <assert.h> |
5 | #include <stdlib.h> |
6 | |
7 | #include <sanitizer/hwasan_interface.h> |
8 | |
9 | const int kSize = 10000000; |
10 | |
11 | void *p; |
12 | int main() { |
13 | for (int i = 0; i < 256; ++i) { |
14 | p = malloc(size: kSize); |
15 | assert(-1 == __hwasan_test_shadow(p, kSize)); |
16 | |
17 | free(ptr: p); |
18 | assert(-1 == __hwasan_test_shadow(__hwasan_tag_pointer(p, 0), kSize)); |
19 | } |
20 | return 0; |
21 | } |
22 | |