18 lines
506 B
C++
18 lines
506 B
C++
// Check that we report delete on a memory that belongs to a stack variable.
|
|
|
|
// RUN: %clangxx_asan -g %s -o %t && %env_asan_opts=alloc_dealloc_mismatch=1 not %run %t 2>&1 | FileCheck %s
|
|
|
|
#include <stdlib.h>
|
|
|
|
static volatile char *x;
|
|
|
|
int main() {
|
|
char a[10];
|
|
x = &a[0];
|
|
delete x;
|
|
}
|
|
|
|
// CHECK: AddressSanitizer: attempting free on address which was not malloc()-ed
|
|
// CHECK: is located in stack of thread T0 at offset
|
|
// CHECK: 'a'{{.*}} <== Memory access at offset {{16|32}} is inside this variable
|