Summary: Included is one test for passing structs by value and one test for passing C++ objects by value. Reviewers: eugenis, vitalybuka Reviewed By: eugenis Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D34827 llvm-svn: 309424
24 lines
359 B
C++
24 lines
359 B
C++
// RUN: %clangxx_asan -O0 %s -o %t
|
|
// RUN: not %run %t 2>&1 | FileCheck %s
|
|
|
|
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
|