xref: /llvm-project/compiler-rt/test/memprof/TestCases/memprof_merge_mib.cpp (revision aacaebc6c22f81b13598aac69dee4b076f669e3e)
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 Kumar int 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