[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