summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2014-01-10 07:58:25 +0000
committerKostya Serebryany <kcc@google.com>2014-01-10 07:58:25 +0000
commitd3f544f296359f67250cb7f13abc103787d8c871 (patch)
tree9637e64050c74f111eb0ac4ba711d5c10ede6a3b
parentad1e1a2b20d912dfdb770bdc30e3b7bec67a139e (diff)
downloadcompiler-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.h5
-rw-r--r--lib/lsan/lit_tests/TestCases/link_turned_off.cc2
-rw-r--r--lib/lsan/lsan_common.cc13
-rw-r--r--lib/lsan/lsan_common.h2
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();