[clang] 217709c - remove Demangle/StringView.h

Nick Desaulniers via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 1 10:13:52 PDT 2023


Author: Nick Desaulniers
Date: 2023-06-01T10:13:33-07:00
New Revision: 217709cbae34ec59ed366f6d77b5d612d2018245

URL: https://github.com/llvm/llvm-project/commit/217709cbae34ec59ed366f6d77b5d612d2018245
DIFF: https://github.com/llvm/llvm-project/commit/217709cbae34ec59ed366f6d77b5d612d2018245.diff

LOG: remove Demangle/StringView.h

Now that we've converted libcxxabi and llvm Demangle to use
std::string_view, this code no longer has any users. Bye bye!

Reviewed By: #libc_abi, phosek, MaskRay

Differential Revision: https://reviews.llvm.org/D148387

Added: 
    

Modified: 
    clang/docs/tools/clang-formatted-files.txt
    libcxxabi/src/demangle/cp-to-llvm.sh
    llvm/unittests/Demangle/CMakeLists.txt

Removed: 
    libcxxabi/src/demangle/StringView.h
    llvm/include/llvm/Demangle/StringView.h
    llvm/unittests/Demangle/StringViewTest.cpp


################################################################################
diff  --git a/clang/docs/tools/clang-formatted-files.txt b/clang/docs/tools/clang-formatted-files.txt
index a156e20fbb1e3..7f36a9df78b97 100644
--- a/clang/docs/tools/clang-formatted-files.txt
+++ b/clang/docs/tools/clang-formatted-files.txt
@@ -3102,7 +3102,6 @@ libc/src/__support/CPP/Bit.h
 libc/src/__support/CPP/Bitset.h
 libc/src/__support/CPP/Functional.h
 libc/src/__support/CPP/Limits.h
-libc/src/__support/CPP/StringView.h
 libc/src/__support/CPP/Utility.h
 libc/src/__support/CPP/vector.h
 libc/src/__support/File/file.cpp
@@ -3451,7 +3450,6 @@ libcxx/src/ryu/d2fixed.cpp
 libcxx/src/ryu/d2s.cpp
 libcxx/src/ryu/f2s.cpp
 libcxxabi/src/cxa_guard_impl.h
-libcxxabi/src/demangle/StringView.h
 libcxxabi/src/demangle/Utility.h
 libunwind/src/cet_unwind.h
 lld/COFF/CallGraphSort.cpp
@@ -5250,7 +5248,6 @@ llvm/include/llvm/Debuginfod/Debuginfod.h
 llvm/include/llvm/Debuginfod/DIFetcher.h
 llvm/include/llvm/Debuginfod/HTTPClient.h
 llvm/include/llvm/Demangle/Demangle.h
-llvm/include/llvm/Demangle/StringView.h
 llvm/include/llvm/Demangle/StringViewExtras.h
 llvm/include/llvm/Demangle/Utility.h
 llvm/include/llvm/DWARFLinker/DWARFLinker.h

diff  --git a/libcxxabi/src/demangle/StringView.h b/libcxxabi/src/demangle/StringView.h
deleted file mode 100644
index fd9764c9418a3..0000000000000
--- a/libcxxabi/src/demangle/StringView.h
+++ /dev/null
@@ -1,109 +0,0 @@
-//===--- StringView.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
-//
-//===----------------------------------------------------------------------===//
-//
-// FIXME: Use std::string_view instead when we support C++17.
-// There are two copies of this file in the source tree.  The one under
-// libcxxabi is the original and the one under llvm is the copy.  Use
-// cp-to-llvm.sh to update the copy.  See README.txt for more details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef DEMANGLE_STRINGVIEW_H
-#define DEMANGLE_STRINGVIEW_H
-
-#include "DemangleConfig.h"
-
-#include <__cxxabi_config.h>
-#include <cassert>
-#include <cstring>
-
-#ifdef _LIBCXXABI_COMPILER_CLANG
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-template"
-#endif
-
-DEMANGLE_NAMESPACE_BEGIN
-
-class StringView {
-  const char *First;
-  const char *Last;
-
-public:
-  static const size_t npos = ~size_t(0);
-
-  template <size_t N>
-  StringView(const char (&Str)[N]) : First(Str), Last(Str + N - 1) {}
-  StringView(const char *First_, size_t Len)
-      : First(First_), Last(First_ + Len) {}
-  StringView(const char *Str) : First(Str), Last(Str + std::strlen(Str)) {}
-  StringView() : First(nullptr), Last(nullptr) {}
-
-  StringView substr(size_t Pos, size_t Len = npos) const {
-    assert(Pos <= size());
-    if (Len > size() - Pos)
-      Len = size() - Pos;
-    return StringView(begin() + Pos, Len);
-  }
-
-  size_t find(char C, size_t From = 0) const {
-    // Avoid calling memchr with nullptr.
-    if (From < size()) {
-      // Just forward to memchr, which is faster than a hand-rolled loop.
-      if (const void *P = ::memchr(First + From, C, size() - From))
-        return size_t(static_cast<const char *>(P) - First);
-    }
-    return npos;
-  }
-
-  void remove_prefix(size_t N) {
-    assert(size() >= N);
-    First += N;
-  }
-  void remove_suffix(size_t N) {
-    assert(size() >= N);
-    Last -= N;
-  }
-
-  char front() const {
-    assert(!empty());
-    return *begin();
-  }
-
-  char back() const {
-    assert(!empty());
-    return *(end() - 1);
-  }
-
-  bool startsWith(char C) const { return !empty() && *begin() == C; }
-
-  bool startsWith(StringView Str) const {
-    if (Str.size() > size())
-      return false;
-    return std::strncmp(Str.begin(), begin(), Str.size()) == 0;
-  }
-
-  const char &operator[](size_t Idx) const { return *(begin() + Idx); }
-
-  const char *begin() const { return First; }
-  const char *end() const { return Last; }
-  size_t size() const { return static_cast<size_t>(Last - First); }
-  bool empty() const { return First == Last; }
-};
-
-inline bool operator==(const StringView &LHS, const StringView &RHS) {
-  return LHS.size() == RHS.size() &&
-         std::strncmp(LHS.begin(), RHS.begin(), LHS.size()) == 0;
-}
-
-DEMANGLE_NAMESPACE_END
-
-#ifdef _LIBCXXABI_COMPILER_CLANG
-#pragma clang diagnostic pop
-#endif
-
-#endif

diff  --git a/libcxxabi/src/demangle/cp-to-llvm.sh b/libcxxabi/src/demangle/cp-to-llvm.sh
index 870b6dad9ac83..cfe32c228e65d 100755
--- a/libcxxabi/src/demangle/cp-to-llvm.sh
+++ b/libcxxabi/src/demangle/cp-to-llvm.sh
@@ -6,7 +6,7 @@
 set -e
 
 cd $(dirname $0)
-HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h StringViewExtras.h Utility.h"
+HDRS="ItaniumDemangle.h ItaniumNodes.def StringViewExtras.h Utility.h"
 LLVM_DEMANGLE_DIR=$1
 
 if [[ -z "$LLVM_DEMANGLE_DIR" ]]; then

diff  --git a/llvm/include/llvm/Demangle/StringView.h b/llvm/include/llvm/Demangle/StringView.h
deleted file mode 100644
index 9ceaa778009e6..0000000000000
--- a/llvm/include/llvm/Demangle/StringView.h
+++ /dev/null
@@ -1,98 +0,0 @@
-//===--- StringView.h ----------------*- mode:c++;eval:(read-only-mode) -*-===//
-//       Do not edit! See README.txt.
-// 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
-//
-//===----------------------------------------------------------------------===//
-//
-// FIXME: Use std::string_view instead when we support C++17.
-// There are two copies of this file in the source tree.  The one under
-// libcxxabi is the original and the one under llvm is the copy.  Use
-// cp-to-llvm.sh to update the copy.  See README.txt for more details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef DEMANGLE_STRINGVIEW_H
-#define DEMANGLE_STRINGVIEW_H
-
-#include "DemangleConfig.h"
-#include <cassert>
-#include <cstring>
-
-DEMANGLE_NAMESPACE_BEGIN
-
-class StringView {
-  const char *First;
-  const char *Last;
-
-public:
-  static const size_t npos = ~size_t(0);
-
-  template <size_t N>
-  StringView(const char (&Str)[N]) : First(Str), Last(Str + N - 1) {}
-  StringView(const char *First_, size_t Len)
-      : First(First_), Last(First_ + Len) {}
-  StringView(const char *Str) : First(Str), Last(Str + std::strlen(Str)) {}
-  StringView() : First(nullptr), Last(nullptr) {}
-
-  StringView substr(size_t Pos, size_t Len = npos) const {
-    assert(Pos <= size());
-    if (Len > size() - Pos)
-      Len = size() - Pos;
-    return StringView(begin() + Pos, Len);
-  }
-
-  size_t find(char C, size_t From = 0) const {
-    // Avoid calling memchr with nullptr.
-    if (From < size()) {
-      // Just forward to memchr, which is faster than a hand-rolled loop.
-      if (const void *P = ::memchr(First + From, C, size() - From))
-        return size_t(static_cast<const char *>(P) - First);
-    }
-    return npos;
-  }
-
-  void remove_prefix(size_t N) {
-    assert(size() >= N);
-    First += N;
-  }
-  void remove_suffix(size_t N) {
-    assert(size() >= N);
-    Last -= N;
-  }
-
-  char front() const {
-    assert(!empty());
-    return *begin();
-  }
-
-  char back() const {
-    assert(!empty());
-    return *(end() - 1);
-  }
-
-  bool startsWith(char C) const { return !empty() && *begin() == C; }
-
-  bool startsWith(StringView Str) const {
-    if (Str.size() > size())
-      return false;
-    return std::strncmp(Str.begin(), begin(), Str.size()) == 0;
-  }
-
-  const char &operator[](size_t Idx) const { return *(begin() + Idx); }
-
-  const char *begin() const { return First; }
-  const char *end() const { return Last; }
-  size_t size() const { return static_cast<size_t>(Last - First); }
-  bool empty() const { return First == Last; }
-};
-
-inline bool operator==(const StringView &LHS, const StringView &RHS) {
-  return LHS.size() == RHS.size() &&
-         std::strncmp(LHS.begin(), RHS.begin(), LHS.size()) == 0;
-}
-
-DEMANGLE_NAMESPACE_END
-
-#endif

diff  --git a/llvm/unittests/Demangle/CMakeLists.txt b/llvm/unittests/Demangle/CMakeLists.txt
index d6071bc36bda8..105af816e2ca0 100644
--- a/llvm/unittests/Demangle/CMakeLists.txt
+++ b/llvm/unittests/Demangle/CMakeLists.txt
@@ -10,5 +10,4 @@ add_llvm_unittest(DemangleTests
   OutputBufferTest.cpp
   PartialDemangleTest.cpp
   RustDemangleTest.cpp
-  StringViewTest.cpp
 )

diff  --git a/llvm/unittests/Demangle/StringViewTest.cpp b/llvm/unittests/Demangle/StringViewTest.cpp
deleted file mode 100644
index 8eaaaf62a4a4f..0000000000000
--- a/llvm/unittests/Demangle/StringViewTest.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===- llvm/unittest/StringViewTest.cpp - StringView unit tests -----------===//
-//
-// 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 "llvm/Demangle/StringView.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-using llvm::itanium_demangle::StringView;
-
-namespace llvm {
-namespace itanium_demangle {
-
-std::ostream &operator<<(std::ostream &OS, const StringView &S) {
-  return OS.write(S.begin(), S.size());
-}
-
-} // namespace itanium_demangle
-} // namespace llvm
-
-TEST(StringViewTest, EmptyInitializerList) {
-  StringView S = {};
-  EXPECT_TRUE(S.empty());
-
-  S = {};
-  EXPECT_TRUE(S.empty());
-}
-
-TEST(StringViewTest, Substr) {
-  StringView S("abcdef");
-
-  EXPECT_EQ("abcdef", S.substr(0));
-  EXPECT_EQ("f", S.substr(5));
-  EXPECT_EQ("", S.substr(6));
-
-  EXPECT_EQ("", S.substr(0, 0));
-  EXPECT_EQ("a", S.substr(0, 1));
-  EXPECT_EQ("abcde", S.substr(0, 5));
-  EXPECT_EQ("abcdef", S.substr(0, 6));
-  EXPECT_EQ("abcdef", S.substr(0, 7));
-
-  EXPECT_EQ("f", S.substr(5, 100));
-  EXPECT_EQ("", S.substr(6, 100));
-}


        


More information about the cfe-commits mailing list