]>
Commit | Line | Data |
---|---|---|
7cac9316 | 1 | // RUN: %clangxx_asan -O0 -mllvm -asan-instrument-dynamic-allocas %s -o %t |
92a42be0 SL |
2 | // RUN: not %run %t 2>&1 | FileCheck %s |
3 | // | |
4 | ||
5 | #include <assert.h> | |
6 | ||
7 | __attribute__((noinline)) void foo(int index, int len) { | |
8 | volatile char str[len] __attribute__((aligned(32))); | |
9 | assert(!(reinterpret_cast<long>(str) & 31L)); | |
10 | str[index] = '1'; // BOOM | |
11 | // CHECK: ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] | |
12 | // CHECK: WRITE of size 1 at [[ADDR]] thread T0 | |
13 | } | |
14 | ||
15 | int main(int argc, char **argv) { | |
16 | foo(33, 10); | |
17 | return 0; | |
18 | } |