[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