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)11 extern "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()15 int 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