1*7c3d14c8STreehugger Robot // RUN: %clangxx_asan -O0 %s -o %t && %run %t 2>&1 | FileCheck %s 2*7c3d14c8STreehugger Robot 3*7c3d14c8STreehugger Robot #include <sanitizer/asan_interface.h> 4*7c3d14c8STreehugger Robot 5*7c3d14c8STreehugger Robot int global; 6*7c3d14c8STreehugger Robot main(int argc,char * argv[])7*7c3d14c8STreehugger Robotint main(int argc, char *argv[]) { 8*7c3d14c8STreehugger Robot int stack; 9*7c3d14c8STreehugger Robot int *heap = new int[100]; 10*7c3d14c8STreehugger Robot __asan_describe_address(heap); 11*7c3d14c8STreehugger Robot // CHECK: {{.*}} is located 0 bytes inside of 400-byte region 12*7c3d14c8STreehugger Robot // CHECK: allocated by thread T{{.*}} here 13*7c3d14c8STreehugger Robot __asan_describe_address(&stack); 14*7c3d14c8STreehugger Robot // CHECK: Address {{.*}} is located in stack of thread T{{.*}} at offset {{.*}} 15*7c3d14c8STreehugger Robot __asan_describe_address(&global); 16*7c3d14c8STreehugger Robot // CHECK: {{.*}} is located 0 bytes inside of global variable 'global' 17*7c3d14c8STreehugger Robot delete[] heap; 18*7c3d14c8STreehugger Robot return 0; 19*7c3d14c8STreehugger Robot } 20