Index: compiler-rt/trunk/include/sanitizer/lsan_interface.h =================================================================== --- compiler-rt/trunk/include/sanitizer/lsan_interface.h +++ compiler-rt/trunk/include/sanitizer/lsan_interface.h @@ -64,6 +64,8 @@ // for the program it is linked into (if the return value is non-zero). This // function must be defined as returning a constant value; any behavior beyond // that is unsupported. + // To avoid dead stripping, you may need to define this function with + // __attribute__((used)) int __lsan_is_turned_off(); // This function may be optionally provided by the user and should return Index: compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc =================================================================== --- compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc +++ compiler-rt/trunk/test/lsan/TestCases/link_turned_off.cc @@ -3,15 +3,13 @@ // RUN: %clangxx_lsan %s -o %t // RUN: %env_lsan_opts=$LSAN_BASE %run %t // RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s -// -// UNSUPPORTED: darwin #include int argc_copy; extern "C" { -int __lsan_is_turned_off() { +int __attribute__((used)) __lsan_is_turned_off() { return (argc_copy == 1); } }