diff options
author | Kostya Serebryany <kcc@google.com> | 2014-01-10 07:58:25 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2014-01-10 07:58:25 +0000 |
commit | d3f544f296359f67250cb7f13abc103787d8c871 (patch) | |
tree | 9637e64050c74f111eb0ac4ba711d5c10ede6a3b | |
parent | ad1e1a2b20d912dfdb770bdc30e3b7bec67a139e (diff) | |
download | compiler-rt-d3f544f296359f67250cb7f13abc103787d8c871.tar.gz |
[lsan] rename __lsan_is_turned_off to LeakSanitizerIsTurnedOffForTheCurrentProcess (leave the old variant for now for compatibility)
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@198921 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/sanitizer/lsan_interface.h | 5 | ||||
-rw-r--r-- | lib/lsan/lit_tests/TestCases/link_turned_off.cc | 2 | ||||
-rw-r--r-- | lib/lsan/lsan_common.cc | 13 | ||||
-rw-r--r-- | lib/lsan/lsan_common.h | 2 |
4 files changed, 19 insertions, 3 deletions
diff --git a/include/sanitizer/lsan_interface.h b/include/sanitizer/lsan_interface.h index cfc3d9c63..4ff0a49ae 100644 --- a/include/sanitizer/lsan_interface.h +++ b/include/sanitizer/lsan_interface.h @@ -45,6 +45,11 @@ extern "C" { // 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. + int LeakSanitizerIsTurnedOffForTheCurrentProcess(); + + // Same as LeakSanitizerIsTurnedOffForTheCurrentProcess, but deprecated. + // If both functions are defined only + // LeakSanitizerIsTurnedOffForTheCurrentProcess is used. int __lsan_is_turned_off(); // Calling this function makes LSan enter the leak checking phase immediately. diff --git a/lib/lsan/lit_tests/TestCases/link_turned_off.cc b/lib/lsan/lit_tests/TestCases/link_turned_off.cc index 93628a1d1..2c848fe34 100644 --- a/lib/lsan/lit_tests/TestCases/link_turned_off.cc +++ b/lib/lsan/lit_tests/TestCases/link_turned_off.cc @@ -9,7 +9,7 @@ int argc_copy; extern "C" { -int __lsan_is_turned_off() { +int LeakSanitizerIsTurnedOffForTheCurrentProcess() { return (argc_copy == 1); } } diff --git a/lib/lsan/lsan_common.cc b/lib/lsan/lsan_common.cc index 596e97ee0..3362fcdec 100644 --- a/lib/lsan/lsan_common.cc +++ b/lib/lsan/lsan_common.cc @@ -423,8 +423,13 @@ void DoLeakCheck() { static bool already_done; if (already_done) return; already_done = true; - if (&__lsan_is_turned_off && __lsan_is_turned_off()) - return; + if (&LeakSanitizerIsTurnedOffForTheCurrentProcess) { + if (LeakSanitizerIsTurnedOffForTheCurrentProcess()) + return; + } else if (&__lsan_is_turned_off) { + if (__lsan_is_turned_off()) + return; + } DoLeakCheckParam param; param.success = false; @@ -714,5 +719,9 @@ SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE int __lsan_is_turned_off() { return 0; } +SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE +int LeakSanitizerIsTurnedOffForTheCurrentProcess() { + return 0; +} #endif } // extern "C" diff --git a/lib/lsan/lsan_common.h b/lib/lsan/lsan_common.h index 431e16697..f3d9e9bc9 100644 --- a/lib/lsan/lsan_common.h +++ b/lib/lsan/lsan_common.h @@ -190,6 +190,8 @@ class LsanMetadata { extern "C" { SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE int __lsan_is_turned_off(); +SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE +int LeakSanitizerIsTurnedOffForTheCurrentProcess(); SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE const char *__lsan_default_suppressions(); |