[compiler-rt] r323083 - [lsan] Respect log_path option in standalone LSan
Maxim Ostapenko via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 22 01:30:27 PST 2018
Author: chefmax
Date: Mon Jan 22 01:30:27 2018
New Revision: 323083
URL: http://llvm.org/viewvc/llvm-project?rev=323083&view=rev
Log:
[lsan] Respect log_path option in standalone LSan
Differential Revision: https://reviews.llvm.org/D42303
Added:
compiler-rt/trunk/test/lsan/TestCases/Linux/log-path_test.cc
Modified:
compiler-rt/trunk/lib/lsan/lsan.cc
Modified: compiler-rt/trunk/lib/lsan/lsan.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan.cc?rev=323083&r1=323082&r2=323083&view=diff
==============================================================================
--- compiler-rt/trunk/lib/lsan/lsan.cc (original)
+++ compiler-rt/trunk/lib/lsan/lsan.cc Mon Jan 22 01:30:27 2018
@@ -66,6 +66,8 @@ static void InitializeFlags() {
if (Verbosity()) ReportUnrecognizedFlags();
if (common_flags()->help) parser.PrintFlagDescriptions();
+
+ __sanitizer_set_report_path(common_flags()->log_path);
}
static void OnStackUnwind(const SignalContext &sig, const void *,
Added: compiler-rt/trunk/test/lsan/TestCases/Linux/log-path_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/Linux/log-path_test.cc?rev=323083&view=auto
==============================================================================
--- compiler-rt/trunk/test/lsan/TestCases/Linux/log-path_test.cc (added)
+++ compiler-rt/trunk/test/lsan/TestCases/Linux/log-path_test.cc Mon Jan 22 01:30:27 2018
@@ -0,0 +1,26 @@
+// RUN: %clangxx_lsan %s -o %t
+// The globs below do not work in the lit shell.
+
+// Regular run.
+// RUN: %env_lsan_opts="use_stacks=0" not %run %t > %t.out 2>&1
+// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.out
+
+// Good log_path.
+// RUN: rm -f %t.log.*
+// RUN: %env_lsan_opts="use_stacks=0:log_path='"%t.log"'" not %run %t > %t.out 2>&1
+// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.log.*
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "sanitizer_common/print_address.h"
+
+int main() {
+ void *stack_var = malloc(1337);
+ print_address("Test alloc: ", 1, stack_var);
+ // Do not return from main to prevent the pointer from going out of scope.
+ exit(0);
+}
+
+// CHECK-ERROR: LeakSanitizer: detected memory leaks
+// CHECK-ERROR: Direct leak of 1337 byte(s) in 1 object(s) allocated from
+// CHECK-ERROR: SUMMARY: {{(Leak|Address)}}Sanitizer:
More information about the llvm-commits
mailing list