1*e1cff8bfSVitaly Buka // Test retries option of lsan. 2*e1cff8bfSVitaly Buka // RUN: %clang_lsan %s -o %t 3*e1cff8bfSVitaly Buka // RUN: %env_lsan_opts=use_stacks=0:use_registers=0:symbolize=0 %run %t foo 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK1 4*e1cff8bfSVitaly Buka // RUN: %env_lsan_opts=use_stacks=0:use_registers=0:symbolize=0:tries=12 %run %t 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK12 5*e1cff8bfSVitaly Buka 6*e1cff8bfSVitaly Buka #include <assert.h> 7*e1cff8bfSVitaly Buka #include <sanitizer/lsan_interface.h> 8*e1cff8bfSVitaly Buka #include <stdio.h> 9*e1cff8bfSVitaly Buka #include <stdlib.h> 10*e1cff8bfSVitaly Buka #include <unistd.h> 11*e1cff8bfSVitaly Buka 12*e1cff8bfSVitaly Buka void *p; 13*e1cff8bfSVitaly Buka 14*e1cff8bfSVitaly Buka int main(int argc, char *argv[]) { 15*e1cff8bfSVitaly Buka fprintf(stderr, "Test alloc: %p.\n", malloc(1337)); 16*e1cff8bfSVitaly Buka // CHECK: Test alloc: 17*e1cff8bfSVitaly Buka 18*e1cff8bfSVitaly Buka assert(__lsan_do_recoverable_leak_check() == 1); 19*e1cff8bfSVitaly Buka // CHECK1-COUNT-1: SUMMARY: {{.*}}Sanitizer: 1337 byte 20*e1cff8bfSVitaly Buka // CHECK12-COUNT-12: SUMMARY: {{.*}}Sanitizer: 1337 byte 21*e1cff8bfSVitaly Buka 22*e1cff8bfSVitaly Buka _exit(0); 23*e1cff8bfSVitaly Buka } 24