1// RUN: %clangxx_asan -O0 -mllvm -asan-instrument-dynamic-allocas %s -o %t
2// RUN: %run %t 2>&1
3//
4// MSVC doesn't support VLAs
5// UNSUPPORTED: msvc
6
7#include <assert.h>
8#include <stdint.h>
9
10__attribute__((noinline)) void foo(int index, int len) {
11 volatile char str[len] __attribute__((aligned(32)));
12 assert(!(reinterpret_cast<uintptr_t>(str) & 31L));
13 str[index] = '1';
14}
15
16int main(int argc, char **argv) {
17 foo(index: 4, len: 5);
18 foo(index: 39, len: 40);
19 return 0;
20}
21

Provided by KDAB

Privacy Policy
Update your C++ knowledge – Modern C++11/14/17 Training
Find out more

source code of compiler-rt/test/asan/TestCases/alloca_safe_access.cpp