summaryrefslogtreecommitdiff
path: root/lib/lsan
diff options
context:
space:
mode:
authorMaxim Ostapenko <chefmax7@gmail.com>2017-09-22 07:11:43 +0000
committerMaxim Ostapenko <chefmax7@gmail.com>2017-09-22 07:11:43 +0000
commitacea4097cecbb48fab482ada95e585f54a5e7436 (patch)
tree26d87f9723bc6a1cbc366cc72997fb16500b09e7 /lib/lsan
parent0b01c05ec7545697a453b594f3b288e38d4c36cb (diff)
[asan/lsan] Make LSan compliant with recovery mode when running on top of ASan
Don't overwrite exit code in LSan when running on top of ASan in recovery mode to avoid breakage of users code due to found leaks. Patch by Slava Barinov. Differential Revision: https://reviews.llvm.org/D38026 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@313966 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/lsan')
-rw-r--r--lib/lsan/lsan_common.cc3
-rw-r--r--lib/lsan/lsan_common.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/lsan/lsan_common.cc b/lib/lsan/lsan_common.cc
index a7927684c..b9b6fe086 100644
--- a/lib/lsan/lsan_common.cc
+++ b/lib/lsan/lsan_common.cc
@@ -593,6 +593,8 @@ static int DoRecoverableLeakCheck() {
return have_leaks ? 1 : 0;
}
+void DoRecoverableLeakCheckVoid() { DoRecoverableLeakCheck(); }
+
static Suppression *GetSuppressionForAddr(uptr addr) {
Suppression *s = nullptr;
@@ -755,6 +757,7 @@ uptr LeakReport::UnsuppressedLeakCount() {
namespace __lsan {
void InitCommonLsan() { }
void DoLeakCheck() { }
+void DoRecoverableLeakCheckVoid() { }
void DisableInThisThread() { }
void EnableInThisThread() { }
}
diff --git a/lib/lsan/lsan_common.h b/lib/lsan/lsan_common.h
index 31bf3eb1d..1bb3e4198 100644
--- a/lib/lsan/lsan_common.h
+++ b/lib/lsan/lsan_common.h
@@ -145,6 +145,7 @@ enum IgnoreObjectResult {
// Functions called from the parent tool.
void InitCommonLsan();
void DoLeakCheck();
+void DoRecoverableLeakCheckVoid();
void DisableCounterUnderflow();
bool DisabledInThisThread();