11243cef2SSnehasish Kumar // RUN: %clangxx_memprof %s -o %t 21243cef2SSnehasish Kumar 3*aacaebc6SSnehasish Kumar // RUN: %env_memprof_opts=print_text=true:log_path=stdout %run %t | FileCheck %s 41243cef2SSnehasish Kumar 51243cef2SSnehasish Kumar #include <sanitizer/memprof_interface.h> 61243cef2SSnehasish Kumar #include <stdlib.h> 71243cef2SSnehasish Kumar #include <string.h> main(int argc,char ** argv)81243cef2SSnehasish Kumarint main(int argc, char **argv) { 91243cef2SSnehasish Kumar for (int i = 0; i < 3; i++) { 101243cef2SSnehasish Kumar char *x = (char *)malloc(10); 111243cef2SSnehasish Kumar if (i % 2) 121243cef2SSnehasish Kumar memset(x, 0, 10); 131243cef2SSnehasish Kumar else 141243cef2SSnehasish Kumar memset(x, 2, 10); 151243cef2SSnehasish Kumar free(x); 161243cef2SSnehasish Kumar } 171243cef2SSnehasish Kumar return 0; 181243cef2SSnehasish Kumar } 191243cef2SSnehasish Kumar // We should get one allocation site with alloc_count = loop trip count = 3 201243cef2SSnehasish Kumar // CHECK: Memory allocation stack id = [[ID:[0-9]+]] 211243cef2SSnehasish Kumar // CHECK-NEXT-COUNT-1: alloc_count 3 221243cef2SSnehasish Kumar // CHECK-COUNT-1: Stack for id {{.*}}[[ID]] 231243cef2SSnehasish Kumar // CHECK-NEXT-COUNT-1: memprof_malloc_linux.cpp 241243cef2SSnehasish Kumar // CHECK-NEXT-COUNT-1: memprof_merge_mib.cpp 25