1 // RUN: %clangxx_hwasan -DERR=1 %s -o %t && not %run %t 2>&1 | FileCheck %s 2 // RUN: %clangxx_hwasan -DERR=2 %s -o %t && not %run %t 2>&1 | FileCheck %s 3 // REQUIRES: android 4 5 #include <stdlib.h> 6 #include <stdio.h> 7 8 #include <sanitizer/hwasan_interface.h> 9 10 __attribute__((no_sanitize("hwaddress"))) android_set_abort_message(const char * msg)11extern "C" void android_set_abort_message(const char *msg) { 12 fprintf(stderr, "== abort message start\n%s\n== abort message end\n", msg); 13 } 14 main()15int main() { 16 __hwasan_enable_allocator_tagging(); 17 char *volatile p = (char *)malloc(16); 18 if (ERR==1) { 19 p[16] = 1; 20 } else { 21 free(p); 22 free(p); 23 } 24 // CHECK: ERROR: HWAddressSanitizer: 25 // CHECK: == abort message start 26 // CHECK: ERROR: HWAddressSanitizer: 27 // CHECK: == abort message end 28 } 29