recoverable-lsan.cpp
523 Bytes
// Ensure that output is the same but exit code depends on halt_on_error value
// RUN: %clangxx_asan %s -o %t
// RUN: %env_asan_opts="halt_on_error=0" %run %t 2>&1 | FileCheck %s
// RUN: %env_asan_opts="halt_on_error=1" not %run %t 2>&1 | FileCheck %s
// RUN: not %run %t 2>&1 | FileCheck %s
// REQUIRES: leak-detection
// UNSUPPORTED: android
#include <stdlib.h>
int f() {
volatile int *a = (int *)malloc(20);
a[0] = 1;
return a[0];
}
int main() {
f();
f();
}
// CHECK: LeakSanitizer: detected memory leaks