Index: lib/asan/asan_flags.cc =================================================================== --- lib/asan/asan_flags.cc +++ lib/asan/asan_flags.cc @@ -61,7 +61,7 @@ { CommonFlags cf; cf.CopyFrom(*common_flags()); - cf.detect_leaks = CAN_SANITIZE_LEAKS; + cf.detect_leaks = common_flags()->detect_leaks && CAN_SANITIZE_LEAKS; cf.external_symbolizer_path = GetEnv("ASAN_SYMBOLIZER_PATH"); cf.malloc_context_size = kDefaultMallocContextSize; cf.intercept_tls_get_addr = true; Index: lib/lsan/lsan.cc =================================================================== --- lib/lsan/lsan.cc +++ lib/lsan/lsan.cc @@ -44,7 +44,6 @@ cf.external_symbolizer_path = GetEnv("LSAN_SYMBOLIZER_PATH"); cf.malloc_context_size = 30; cf.intercept_tls_get_addr = true; - cf.detect_leaks = true; cf.exitcode = 23; OverrideCommonFlags(cf); } Index: test/asan/TestCases/Linux/leak.cc =================================================================== --- test/asan/TestCases/Linux/leak.cc +++ test/asan/TestCases/Linux/leak.cc @@ -1,5 +1,6 @@ // Minimal test for LeakSanitizer+AddressSanitizer. // REQUIRES: leak-detection +// UNSUPPORTED: x86 // // RUN: %clangxx_asan %s -o %t // RUN: %env_asan_opts=detect_leaks=1 not %run %t 2>&1 | FileCheck %s Index: test/asan/TestCases/Linux/leak_check_segv.cc =================================================================== --- test/asan/TestCases/Linux/leak_check_segv.cc +++ test/asan/TestCases/Linux/leak_check_segv.cc @@ -1,5 +1,5 @@ // Test that SIGSEGV during leak checking does not crash the process. -// RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s +// RUN: %clangxx_asan -O1 %s -o %t && %env_asan_opts=detect_leaks=1 not %run %t 2>&1 | FileCheck %s // REQUIRES: leak-detection #include #include Index: test/asan/TestCases/coverage-and-lsan.cc =================================================================== --- test/asan/TestCases/coverage-and-lsan.cc +++ test/asan/TestCases/coverage-and-lsan.cc @@ -5,7 +5,7 @@ // RUN: rm -rf %T/coverage-and-lsan // // RUN: mkdir -p %T/coverage-and-lsan/normal -// RUN: %env_asan_opts=coverage=1:coverage_dir=%T/coverage-and-lsan:verbosity=1 not %run %t 2>&1 | FileCheck %s +// RUN: %env_asan_opts=detect_leaks=1:coverage=1:coverage_dir=%T/coverage-and-lsan:verbosity=1 not %run %t 2>&1 | FileCheck %s // RUN: %sancov print %T/coverage-and-lsan/*.sancov 2>&1 // // REQUIRES: leak-detection Index: test/lsan/TestCases/cleanup_in_tsd_destructor.c =================================================================== --- test/lsan/TestCases/cleanup_in_tsd_destructor.c +++ test/lsan/TestCases/cleanup_in_tsd_destructor.c @@ -3,7 +3,7 @@ // user-installed TSD destructors have finished running (since they may contain // additional cleanup tasks). LSan doesn't actually meet that goal 100%, but it // makes its best effort. -// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_globals=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=0:use_globals=0" // RUN: %clang_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:use_tls=1 %run %t // RUN: LSAN_OPTIONS=$LSAN_BASE:use_tls=0 not %run %t 2>&1 | FileCheck %s Index: test/lsan/TestCases/disabler.c =================================================================== --- test/lsan/TestCases/disabler.c +++ test/lsan/TestCases/disabler.c @@ -1,5 +1,5 @@ // Test for __lsan_disable() / __lsan_enable(). -// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0" // RUN: %clang_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s Index: test/lsan/TestCases/ignore_object.c =================================================================== --- test/lsan/TestCases/ignore_object.c +++ test/lsan/TestCases/ignore_object.c @@ -1,5 +1,5 @@ // Test for __lsan_ignore_object(). -// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0" // RUN: %clang_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s Index: test/lsan/TestCases/strace_test.cc =================================================================== --- test/lsan/TestCases/strace_test.cc +++ test/lsan/TestCases/strace_test.cc @@ -1,6 +1,6 @@ // Test that lsan reports a proper error when running under strace. // RUN: %clangxx_lsan %s -o %t -// RUN: not strace -o /dev/null %run %t 2>&1 | FileCheck %s +// RUN: LSAN_OPTIONS=detect_leaks=1 not strace -o /dev/null %run %t 2>&1 | FileCheck %s #include #include Index: test/lsan/TestCases/swapcontext.cc =================================================================== --- test/lsan/TestCases/swapcontext.cc +++ test/lsan/TestCases/swapcontext.cc @@ -3,7 +3,7 @@ // RUN: %clangxx_lsan %s -o %t // RUN: %run %t 2>&1 -// RUN: not %run %t foo 2>&1 | FileCheck %s +// RUN: LSAN_OPTIONS=detect_leaks=1 not %run %t foo 2>&1 | FileCheck %s // // UNSUPPORTED: arm