xref: /llvm-project/compiler-rt/test/lsan/TestCases/leak_check_at_exit.cpp (revision b2aa0a465013aca2fc43ca729fdb714eb52150b3)
197ccf6b8SFangrui Song // Test for the leak_check_at_exit flag.
297ccf6b8SFangrui Song // RUN: %clangxx_lsan %s -o %t
3d08e5d4cSClemens Wasser // RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do
4d08e5d4cSClemens Wasser // RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-do
5d08e5d4cSClemens Wasser // RUN: %env_lsan_opts=use_stacks=0:use_registers=0:leak_check_at_exit=0 not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do
6d08e5d4cSClemens Wasser // RUN: %env_lsan_opts=use_stacks=0:use_registers=0:leak_check_at_exit=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont
797ccf6b8SFangrui Song 
897ccf6b8SFangrui Song #include <stdio.h>
997ccf6b8SFangrui Song #include <stdlib.h>
1097ccf6b8SFangrui Song #include <sanitizer/lsan_interface.h>
1197ccf6b8SFangrui Song 
main(int argc,char * argv[])1297ccf6b8SFangrui Song int main(int argc, char *argv[]) {
1397ccf6b8SFangrui Song   fprintf(stderr, "Test alloc: %p.\n", malloc(1337));
1497ccf6b8SFangrui Song   if (argc > 1)
1597ccf6b8SFangrui Song     __lsan_do_leak_check();
1697ccf6b8SFangrui Song   return 0;
1797ccf6b8SFangrui Song }
1897ccf6b8SFangrui Song 
19*b2aa0a46SKirill Stoimenov // CHECK-do: SUMMARY: {{.*}}Sanitizer:
20*b2aa0a46SKirill Stoimenov // CHECK-dont-NOT: SUMMARY: {{.*}}Sanitizer:
21