[compiler-rt] r340758 - Revert "[lsan] Do not check for leaks in the forked process"
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 28 01:11:25 PDT 2018
Merged to 7.0 together with r340769 in r340801.
On Mon, Aug 27, 2018 at 7:26 PM, Vitaly Buka via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: vitalybuka
> Date: Mon Aug 27 10:26:28 2018
> New Revision: 340758
>
> URL: http://llvm.org/viewvc/llvm-project?rev=340758&view=rev
> Log:
> Revert "[lsan] Do not check for leaks in the forked process"
>
> Users need leak reports in forks.
>
> This reverts commit r334036.
>
> Removed:
> compiler-rt/trunk/test/lsan/TestCases/Linux/fork_with_threads.cc
> Modified:
> compiler-rt/trunk/lib/lsan/lsan_common.cc
>
> Modified: compiler-rt/trunk/lib/lsan/lsan_common.cc
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.cc?rev=340758&r1=340757&r2=340758&view=diff
> ==============================================================================
> --- compiler-rt/trunk/lib/lsan/lsan_common.cc (original)
> +++ compiler-rt/trunk/lib/lsan/lsan_common.cc Mon Aug 27 10:26:28 2018
> @@ -100,8 +100,6 @@ static SuppressionContext *GetSuppressio
>
> static InternalMmapVector<RootRegion> *root_regions;
>
> -static uptr initialized_for_pid;
> -
> InternalMmapVector<RootRegion> const *GetRootRegions() { return root_regions; }
>
> void InitializeRootRegions() {
> @@ -115,7 +113,6 @@ const char *MaybeCallLsanDefaultOptions(
> }
>
> void InitCommonLsan() {
> - initialized_for_pid = internal_getpid();
> InitializeRootRegions();
> if (common_flags()->detect_leaks) {
> // Initialization which can fail or print warnings should only be done if
> @@ -571,12 +568,6 @@ static void CheckForLeaksCallback(const
> static bool CheckForLeaks() {
> if (&__lsan_is_turned_off && __lsan_is_turned_off())
> return false;
> - if (initialized_for_pid != internal_getpid()) {
> - // If process was forked and it had threads we fail to detect references
> - // from other threads.
> - Report("WARNING: LeakSanitizer is disabled in forked process.\n");
> - return false;
> - }
> EnsureMainThreadIDIsCorrect();
> CheckForLeaksParam param;
> param.success = false;
>
> Removed: compiler-rt/trunk/test/lsan/TestCases/Linux/fork_with_threads.cc
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lsan/TestCases/Linux/fork_with_threads.cc?rev=340757&view=auto
> ==============================================================================
> --- compiler-rt/trunk/test/lsan/TestCases/Linux/fork_with_threads.cc (original)
> +++ compiler-rt/trunk/test/lsan/TestCases/Linux/fork_with_threads.cc (removed)
> @@ -1,35 +0,0 @@
> -// Test forked process does not run lsan.
> -// RUN: %clangxx_lsan %s -o %t && %run %t 2>&1 | FileCheck %s
> -
> -#include <pthread.h>
> -#include <stdlib.h>
> -#include <sys/wait.h>
> -#include <unistd.h>
> -
> -static pthread_barrier_t barrier;
> -
> -// CHECK-NOT: SUMMARY: {{(Leak|Address)}}Sanitizer:
> -static void *thread_func(void *arg) {
> - void *buffer = malloc(1337);
> - pthread_barrier_wait(&barrier);
> - for (;;)
> - pthread_yield();
> - return 0;
> -}
> -
> -int main() {
> - pthread_barrier_init(&barrier, 0, 2);
> - pthread_t tid;
> - int res = pthread_create(&tid, 0, thread_func, 0);
> - pthread_barrier_wait(&barrier);
> - pthread_barrier_destroy(&barrier);
> -
> - pid_t pid = fork();
> - if (pid > 0) {
> - int status = 0;
> - waitpid(pid, &status, 0);
> - }
> - return 0;
> -}
> -
> -// CHECK: WARNING: LeakSanitizer is disabled in forked process
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list