| // RUN: %clangxx_hwasan %s -o %t && not %run %t 2>&1 | FileCheck %s |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| #include <sanitizer/hwasan_interface.h> |
| |
| __attribute__((no_sanitize("hwaddress"))) extern "C" void callback(const char *msg) { |
| fprintf(stderr, "== error start\n%s\n== error end\n", msg); |
| } |
| |
| int main() { |
| __hwasan_enable_allocator_tagging(); |
| __hwasan_set_error_report_callback(&callback); |
| char *volatile p = (char *)malloc(16); |
| p[16] = 1; |
| free(p); |
| // CHECK: ERROR: HWAddressSanitizer: |
| // CHECK: WRITE of size 1 at |
| // CHECK: allocated here: |
| // CHECK: Memory tags around the buggy address |
| |
| // CHECK: == error start |
| // CHECK: ERROR: HWAddressSanitizer: |
| // CHECK: WRITE of size 1 at |
| // CHECK: allocated here: |
| // CHECK: Memory tags around the buggy address |
| // CHECK: == error end |
| } |