| // RUN: %clangxx_asan -O0 %s -o %t | |
| // RUN: not %run %t 2>&1 | FileCheck %s | |
| // XFAIL: msvc | |
| struct A { | |
| int a[8]; | |
| }; | |
| int bar(A *a) { | |
| int *volatile ptr = &a->a[0]; | |
| return *(ptr - 1); | |
| } | |
| void foo(A a) { | |
| bar(&a); | |
| } | |
| int main() { | |
| foo(A()); | |
| } | |
| // CHECK: ERROR: AddressSanitizer: stack-buffer-underflow | |
| // CHECK: READ of size 4 at | |
| // CHECK: is located in stack of thread |