[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
diff --git a/compiler-rt/lib/asan/asan_thread.cpp b/compiler-rt/lib/asan/asan_thread.cpp
index 37fb6f2..0779daa 100644
--- a/compiler-rt/lib/asan/asan_thread.cpp
+++ b/compiler-rt/lib/asan/asan_thread.cpp
@@ -21,7 +21,6 @@
 #include "sanitizer_common/sanitizer_common.h"
 #include "sanitizer_common/sanitizer_placement_new.h"
 #include "sanitizer_common/sanitizer_stackdepot.h"
-#include "sanitizer_common/sanitizer_thread_history.h"
 #include "sanitizer_common/sanitizer_tls_get_addr.h"
 
 namespace __asan {
@@ -556,12 +555,6 @@
       threads);
 }
 
-void PrintThreads() {
-  InternalScopedString out;
-  PrintThreadHistory(__asan::asanThreadRegistry(), out);
-  Report("%s\n", out.data());
-}
-
 }  // namespace __lsan
 
 // ---------------------- Interface ---------------- {{{1
diff --git a/compiler-rt/lib/hwasan/hwasan_thread.cpp b/compiler-rt/lib/hwasan/hwasan_thread.cpp
index 8b32e4e..3e14a71 100644
--- a/compiler-rt/lib/hwasan/hwasan_thread.cpp
+++ b/compiler-rt/lib/hwasan/hwasan_thread.cpp
@@ -218,11 +218,6 @@
   __hwasan::hwasanThreadArgRetval().GetAllPtrsLocked(ptrs);
 }
 
-void GetRunningThreadsLocked(InternalMmapVector<tid_t> *threads) {
-  // TODO: implement.
-}
-void PrintThreads() {
-  // TODO: implement.
-}
+void GetRunningThreadsLocked(InternalMmapVector<tid_t> *threads) {}
 
 }  // namespace __lsan
diff --git a/compiler-rt/lib/lsan/lsan_common.cpp b/compiler-rt/lib/lsan/lsan_common.cpp
index b584d1e9..6776598 100644
--- a/compiler-rt/lib/lsan/lsan_common.cpp
+++ b/compiler-rt/lib/lsan/lsan_common.cpp
@@ -771,12 +771,11 @@
   }
   if (common_flags()->print_suppressions)
     GetSuppressionContext()->PrintMatchedSuppressions();
-  if (unsuppressed_count)
+  if (unsuppressed_count > 0) {
     report.PrintSummary();
-  if ((unsuppressed_count && common_flags()->verbosity >= 2) ||
-      flags()->log_threads)
-    PrintThreads();
-  return unsuppressed_count;
+    return true;
+  }
+  return false;
 }
 
 static bool CheckForLeaks() {
diff --git a/compiler-rt/lib/lsan/lsan_common.h b/compiler-rt/lib/lsan/lsan_common.h
index f990c78..c598b62 100644
--- a/compiler-rt/lib/lsan/lsan_common.h
+++ b/compiler-rt/lib/lsan/lsan_common.h
@@ -111,7 +111,6 @@
                                      InternalMmapVector<Range> *ranges);
 void GetAdditionalThreadContextPtrsLocked(InternalMmapVector<uptr> *ptrs);
 void GetRunningThreadsLocked(InternalMmapVector<tid_t> *threads);
-void PrintThreads();
 
 //// --------------------------------------------------------------------------
 //// Allocator prototypes.
diff --git a/compiler-rt/lib/lsan/lsan_thread.cpp b/compiler-rt/lib/lsan/lsan_thread.cpp
index 9e481e9..07c7b92 100644
--- a/compiler-rt/lib/lsan/lsan_thread.cpp
+++ b/compiler-rt/lib/lsan/lsan_thread.cpp
@@ -109,10 +109,6 @@
       threads);
 }
 
-void PrintThreads() {
-  // TODO: implement.
-}
-
 void GetAdditionalThreadContextPtrsLocked(InternalMmapVector<uptr> *ptrs) {
   GetThreadArgRetval().GetAllPtrsLocked(ptrs);
 }
diff --git a/compiler-rt/lib/sanitizer_common/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/CMakeLists.txt
index 09391e4..556a64f 100644
--- a/compiler-rt/lib/sanitizer_common/CMakeLists.txt
+++ b/compiler-rt/lib/sanitizer_common/CMakeLists.txt
@@ -94,7 +94,6 @@
   sanitizer_symbolizer_report.cpp
   sanitizer_symbolizer_report_fuchsia.cpp
   sanitizer_symbolizer_win.cpp
-  sanitizer_thread_history.cpp
   sanitizer_unwind_linux_libcdep.cpp
   sanitizer_unwind_fuchsia.cpp
   sanitizer_unwind_win.cpp
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_thread_history.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_thread_history.cpp
deleted file mode 100644
index 0f5bec3..0000000
--- a/compiler-rt/lib/sanitizer_common/sanitizer_thread_history.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//===-- sanitizer_thread_history.cpp --------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "sanitizer_thread_history.h"
-
-#include "sanitizer_stackdepot.h"
-namespace __sanitizer {
-
-void PrintThreadHistory(ThreadRegistry &registry, InternalScopedString &out) {
-  ThreadRegistryLock l(&registry);
-  // Stack traces are largest part of printout and they often the same for
-  // multiple threads, so we will deduplicate them.
-  InternalMmapVector<const ThreadContextBase *> stacks;
-
-  registry.RunCallbackForEachThreadLocked(
-      [](ThreadContextBase *context, void *arg) {
-        static_cast<decltype(&stacks)>(arg)->push_back(context);
-      },
-      &stacks);
-
-  Sort(stacks.data(), stacks.size(),
-       [](const ThreadContextBase *a, const ThreadContextBase *b) {
-         if (a->stack_id < b->stack_id)
-           return true;
-         if (a->stack_id > b->stack_id)
-           return false;
-         return a->unique_id < b->unique_id;
-       });
-
-  auto describe_thread = [&](const ThreadContextBase *context) {
-    if (!context) {
-      out.Append("T-1");
-      return;
-    }
-    out.AppendF("T%llu/%llu", context->unique_id, context->os_id);
-    if (internal_strlen(context->name))
-      out.AppendF(" (%s)", context->name);
-  };
-
-  auto get_parent =
-      [&](const ThreadContextBase *context) -> const ThreadContextBase * {
-    if (!context)
-      return nullptr;
-    ThreadContextBase *parent = registry.GetThreadLocked(context->parent_tid);
-    if (!parent)
-      return nullptr;
-    if (parent->unique_id >= context->unique_id)
-      return nullptr;
-    return parent;
-  };
-
-  const ThreadContextBase *prev = nullptr;
-  for (const ThreadContextBase *context : stacks) {
-    if (prev && prev->stack_id != context->stack_id)
-      StackDepotGet(prev->stack_id).PrintTo(&out);
-    prev = context;
-    out.Append("Thread ");
-    describe_thread(context);
-    out.Append(" was created by ");
-    describe_thread(get_parent(context));
-    out.Append("\n");
-  }
-  if (prev)
-    StackDepotGet(prev->stack_id).PrintTo(&out);
-}
-
-}  // namespace __sanitizer
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_thread_history.h b/compiler-rt/lib/sanitizer_common/sanitizer_thread_history.h
deleted file mode 100644
index 2995f60..0000000
--- a/compiler-rt/lib/sanitizer_common/sanitizer_thread_history.h
+++ /dev/null
@@ -1,24 +0,0 @@
-//===-- sanitizer_thread_history.h ------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// Utility to print thread histroy from ThreadRegistry.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SANITIZER_THREAD_HISTORY_H
-#define SANITIZER_THREAD_HISTORY_H
-
-#include "sanitizer_thread_registry.h"
-
-namespace __sanitizer {
-
-void PrintThreadHistory(ThreadRegistry& registry, InternalScopedString& out);
-
-}  // namespace __sanitizer
-
-#endif  // SANITIZER_THREAD_HISTORY_H
diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp b/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp
index 6e84ecd..c3cac70 100644
--- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp
+++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp
@@ -11,19 +11,11 @@
 //===----------------------------------------------------------------------===//
 #include "sanitizer_common/sanitizer_thread_registry.h"
 
-#include <iostream>
 #include <vector>
 
-#include "gmock/gmock.h"
 #include "gtest/gtest.h"
-#include "sanitizer_common/sanitizer_common.h"
-#include "sanitizer_common/sanitizer_stackdepot.h"
-#include "sanitizer_common/sanitizer_stacktrace.h"
-#include "sanitizer_common/sanitizer_thread_history.h"
 #include "sanitizer_pthread_wrappers.h"
 
-using testing::HasSubstr;
-
 namespace __sanitizer {
 
 static Mutex tctx_allocator_lock;
@@ -247,56 +239,4 @@
   ThreadedTestRegistry(&registry);
 }
 
-TEST(SanitizerCommon, PrintThreadHistory) {
-  ThreadRegistry registry(GetThreadContext<TestThreadContext>,
-                          kThreadsPerShard * kNumShards + 1, 10, 0);
-
-  UNINITIALIZED BufferedStackTrace stack1;
-  stack1.Unwind(StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(), nullptr, false,
-                /*max_depth=*/1);
-
-  UNINITIALIZED BufferedStackTrace stack2;
-  stack2.Unwind(StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(), nullptr, false,
-                /*max_depth=*/1);
-
-  EXPECT_EQ(0U, registry.CreateThread(0, true, -1, 0, nullptr));
-  for (int i = 0; i < 5; i++) {
-    registry.CreateThread(0, true, 0, StackDepotPut(stack1), nullptr);
-    registry.CreateThread(0, true, 0, StackDepotPut(stack2), nullptr);
-  }
-
-  InternalScopedString out;
-  PrintThreadHistory(registry, out);
-
-  std::string substrings[] = {
-      "Thread T0/0 was created by T-1",
-      "<empty stack>",
-      "",
-      "Thread T1/0 was created by T0/0",
-      "Thread T3/0 was created by T0/0",
-      "Thread T5/0 was created by T0/0",
-      "Thread T7/0 was created by T0/0",
-      "Thread T9/0 was created by T0/0",
-      "#0 0x",
-      "",
-      "Thread T2/0 was created by T0/0",
-      "Thread T4/0 was created by T0/0",
-      "Thread T6/0 was created by T0/0",
-      "Thread T8/0 was created by T0/0",
-      "Thread T10/0 was created by T0/0",
-      "#0 0x",
-      "",
-  };
-
-  std::stringstream ss(out.data());
-  std::string line;
-
-  for (auto substr : substrings) {
-    std::getline(ss, line);
-    EXPECT_THAT(line, HasSubstr(substr)) << line;
-  }
-
-  EXPECT_FALSE(std::getline(ss, line)) << "Unmatched line: " << line;
-}
-
 }  // namespace __sanitizer