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")))
11extern "C" void android_set_abort_message(const char *msg) {
12 fprintf(stderr, format: "== abort message start\n%s\n== abort message end\n", msg);
13}
14
15int main() {
16 __hwasan_enable_allocator_tagging();
17 char *volatile p = (char *)malloc(size: 16);
18 if (ERR==1) {
19 p[16] = 1;
20 } else {
21 free(ptr: p);
22 free(ptr: p);
23 }
24 // CHECK: ERROR: HWAddressSanitizer:
25 // CHECK: == abort message start
26 // CHECK: ERROR: HWAddressSanitizer:
27 // CHECK: == abort message end
28}
29

source code of compiler-rt/test/hwasan/TestCases/abort-message-android.cpp