[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-20 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG691c4800be80: [libcxxabi][demangle] create helper for 
std::string_view::starts_with (authored by nickdesaulniers).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148556/new/

https://reviews.llvm.org/D148556

Files:
  clang/docs/tools/clang-formatted-files.txt
  libcxxabi/src/demangle/StringViewExtras.h
  libcxxabi/src/demangle/cp-to-llvm.sh
  llvm/include/llvm/Demangle/StringViewExtras.h

Index: llvm/include/llvm/Demangle/StringViewExtras.h
===
--- /dev/null
+++ llvm/include/llvm/Demangle/StringViewExtras.h
@@ -0,0 +1,34 @@
+//===--- StringViewExtras.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
+//
+//===--===//
+//
+// 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 
+
+DEMANGLE_NAMESPACE_BEGIN
+
+inline bool starts_with(std::string_view self, char C) {
+  return !self.empty() && self.front() == C;
+}
+
+inline bool starts_with(std::string_view haystack, std::string_view needle) {
+  return haystack.substr(0, needle.size()) == needle;
+}
+
+DEMANGLE_NAMESPACE_END
+
+#endif
Index: libcxxabi/src/demangle/cp-to-llvm.sh
===
--- libcxxabi/src/demangle/cp-to-llvm.sh
+++ libcxxabi/src/demangle/cp-to-llvm.sh
@@ -6,7 +6,7 @@
 set -e
 
 cd $(dirname $0)
-HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h Utility.h"
+HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h StringViewExtras.h Utility.h"
 LLVM_DEMANGLE_DIR=$1
 
 if [[ -z "$LLVM_DEMANGLE_DIR" ]]; then
Index: libcxxabi/src/demangle/StringViewExtras.h
===
--- /dev/null
+++ libcxxabi/src/demangle/StringViewExtras.h
@@ -0,0 +1,34 @@
+//===--- StringViewExtras.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
+//
+//===--===//
+//
+// 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 
+
+DEMANGLE_NAMESPACE_BEGIN
+
+inline bool starts_with(std::string_view self, char C) {
+  return !self.empty() && self.front() == C;
+}
+
+inline bool starts_with(std::string_view haystack, std::string_view needle) {
+  return haystack.substr(0, needle.size()) == needle;
+}
+
+DEMANGLE_NAMESPACE_END
+
+#endif
Index: clang/docs/tools/clang-formatted-files.txt
===
--- clang/docs/tools/clang-formatted-files.txt
+++ clang/docs/tools/clang-formatted-files.txt
@@ -5251,6 +5251,7 @@
 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
 llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-19 Thread Petr Hosek via Phabricator via cfe-commits
phosek accepted this revision.
phosek added a comment.
This revision is now accepted and ready to land.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148556/new/

https://reviews.llvm.org/D148556

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 515083.
nickdesaulniers edited the summary of this revision.
nickdesaulniers added a comment.

- use @Maskray's recommended commit description, thanks @Maskray!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148556/new/

https://reviews.llvm.org/D148556

Files:
  clang/docs/tools/clang-formatted-files.txt
  libcxxabi/src/demangle/StringViewExtras.h
  libcxxabi/src/demangle/cp-to-llvm.sh
  llvm/include/llvm/Demangle/StringViewExtras.h

Index: llvm/include/llvm/Demangle/StringViewExtras.h
===
--- /dev/null
+++ llvm/include/llvm/Demangle/StringViewExtras.h
@@ -0,0 +1,34 @@
+//===--- StringViewExtras.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
+//
+//===--===//
+//
+// 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 
+
+DEMANGLE_NAMESPACE_BEGIN
+
+inline bool starts_with(std::string_view self, char C) {
+  return !self.empty() && self.front() == C;
+}
+
+inline bool starts_with(std::string_view haystack, std::string_view needle) {
+  return haystack.substr(0, needle.size()) == needle;
+}
+
+DEMANGLE_NAMESPACE_END
+
+#endif
Index: libcxxabi/src/demangle/cp-to-llvm.sh
===
--- libcxxabi/src/demangle/cp-to-llvm.sh
+++ libcxxabi/src/demangle/cp-to-llvm.sh
@@ -6,7 +6,7 @@
 set -e
 
 cd $(dirname $0)
-HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h Utility.h"
+HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h StringViewExtras.h Utility.h"
 LLVM_DEMANGLE_DIR=$1
 
 if [[ -z "$LLVM_DEMANGLE_DIR" ]]; then
Index: libcxxabi/src/demangle/StringViewExtras.h
===
--- /dev/null
+++ libcxxabi/src/demangle/StringViewExtras.h
@@ -0,0 +1,34 @@
+//===--- StringViewExtras.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
+//
+//===--===//
+//
+// 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 
+
+DEMANGLE_NAMESPACE_BEGIN
+
+inline bool starts_with(std::string_view self, char C) {
+  return !self.empty() && self.front() == C;
+}
+
+inline bool starts_with(std::string_view haystack, std::string_view needle) {
+  return haystack.substr(0, needle.size()) == needle;
+}
+
+DEMANGLE_NAMESPACE_END
+
+#endif
Index: clang/docs/tools/clang-formatted-files.txt
===
--- clang/docs/tools/clang-formatted-files.txt
+++ clang/docs/tools/clang-formatted-files.txt
@@ -5251,6 +5251,7 @@
 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
 llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-19 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added a comment.

A member from #libc_abi  needs to 
review this as well to make this differential green :)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148556/new/

https://reviews.llvm.org/D148556

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-19 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay accepted this revision.
MaskRay added a comment.

> This was added to ADT in https://reviews.llvm.org/D148367 then reverted in 
> https://reviews.llvm.org/D148547 because it was a layering violation pointed 
> out in https://reviews.llvm.org/D148384#4270356.

This description requires readers to read the links. How about make the 
description self-contained with a brief message?

Add C++ 20 style starts_with to be used in LLVMDemangle. Due to library 
layering (LLVMSupport depends on LLVMDemangle), we add the utility header under 
llvm/Demangle, instead of llvm/ADT or llvm/Support.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148556/new/

https://reviews.llvm.org/D148556

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 514410.
nickdesaulniers added a comment.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

- add new file to clang/docs/tools/clang-formatted-files.txt


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148556/new/

https://reviews.llvm.org/D148556

Files:
  clang/docs/tools/clang-formatted-files.txt
  libcxxabi/src/demangle/StringViewExtras.h
  libcxxabi/src/demangle/cp-to-llvm.sh
  llvm/include/llvm/Demangle/StringViewExtras.h

Index: llvm/include/llvm/Demangle/StringViewExtras.h
===
--- /dev/null
+++ llvm/include/llvm/Demangle/StringViewExtras.h
@@ -0,0 +1,34 @@
+//===--- StringViewExtras.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
+//
+//===--===//
+//
+// 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 
+
+DEMANGLE_NAMESPACE_BEGIN
+
+inline bool starts_with(std::string_view self, char C) {
+  return !self.empty() && self.front() == C;
+}
+
+inline bool starts_with(std::string_view haystack, std::string_view needle) {
+  return haystack.substr(0, needle.size()) == needle;
+}
+
+DEMANGLE_NAMESPACE_END
+
+#endif
Index: libcxxabi/src/demangle/cp-to-llvm.sh
===
--- libcxxabi/src/demangle/cp-to-llvm.sh
+++ libcxxabi/src/demangle/cp-to-llvm.sh
@@ -6,7 +6,7 @@
 set -e
 
 cd $(dirname $0)
-HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h Utility.h"
+HDRS="ItaniumDemangle.h ItaniumNodes.def StringView.h StringViewExtras.h Utility.h"
 LLVM_DEMANGLE_DIR=$1
 
 if [[ -z "$LLVM_DEMANGLE_DIR" ]]; then
Index: libcxxabi/src/demangle/StringViewExtras.h
===
--- /dev/null
+++ libcxxabi/src/demangle/StringViewExtras.h
@@ -0,0 +1,34 @@
+//===--- StringViewExtras.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
+//
+//===--===//
+//
+// 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 
+
+DEMANGLE_NAMESPACE_BEGIN
+
+inline bool starts_with(std::string_view self, char C) {
+  return !self.empty() && self.front() == C;
+}
+
+inline bool starts_with(std::string_view haystack, std::string_view needle) {
+  return haystack.substr(0, needle.size()) == needle;
+}
+
+DEMANGLE_NAMESPACE_END
+
+#endif
Index: clang/docs/tools/clang-formatted-files.txt
===
--- clang/docs/tools/clang-formatted-files.txt
+++ clang/docs/tools/clang-formatted-files.txt
@@ -5251,6 +5251,7 @@
 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
 llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits