1 // RUN: rm -rf %t; mkdir %t
2 // RUN: %clang_hwasan -Wl,--build-id -g %s -o %t/hwasan_overflow
3 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow 16 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=CHECK,AFTER0
4 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow 17 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=CHECK,AFTER1
5 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow -1 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=CHECK,BEFORE1
6 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow -17 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=CHECK,BEFORE17
7 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow 1016 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=CHECK,AFTER1000
8 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow -1000 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=CHECK,BEFORE1000
9 // RUN: %env_hwasan_opts=symbolize=0 not %run %t/hwasan_overflow 1000000 2>&1 | hwasan_symbolize --symbols %t --index | FileCheck %s --check-prefixes=TOOFAR
11 // REQUIRES: aarch64-target-arch
15 static volatile char sink
;
17 int main(int argc
, char **argv
) {
19 sink
= x
[atoi(argv
[1])];
20 // TOOFAR-NOT: Potentially referenced stack object:
21 // CHECK: Potentially referenced stack object:
22 // AFTER0: 0 bytes after a variable "x" in stack frame of function "main"
23 // AFTER1: 1 bytes after a variable "x" in stack frame of function "main"
24 // BEFORE1: 1 bytes before a variable "x" in stack frame of function "main"
25 // BEFORE17: 17 bytes before a variable "x" in stack frame of function "main"
26 // BEFORE1000: 1000 bytes before a variable "x" in stack frame of function "main"
27 // AFTER1000: 1000 bytes after a variable "x" in stack frame of function "main"
28 // CHECK: at {{.*}}hwasan_symbolize_stack_overflow.cpp:[[@LINE-10]]