[llvm] 3ece37b - [Demangle] Remove uses of llvm::itanium_demangle::StringView::{dropBack,dropFront}. NFC

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 13 15:09:30 PDT 2023


Author: Fangrui Song
Date: 2023-04-13T15:09:25-07:00
New Revision: 3ece37b3fa2c14157ad02967b867570c6a0c08e8

URL: https://github.com/llvm/llvm-project/commit/3ece37b3fa2c14157ad02967b867570c6a0c08e8
DIFF: https://github.com/llvm/llvm-project/commit/3ece37b3fa2c14157ad02967b867570c6a0c08e8.diff

LOG: [Demangle] Remove uses of llvm::itanium_demangle::StringView::{dropBack,dropFront}. NFC

Make it easier to migrate StringView to std::string_view.

Added: 
    

Modified: 
    llvm/include/llvm/Demangle/StringView.h
    llvm/lib/Demangle/MicrosoftDemangle.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Demangle/StringView.h b/llvm/include/llvm/Demangle/StringView.h
index 6bbb8837fed1a..a5d4baeb7a41c 100644
--- a/llvm/include/llvm/Demangle/StringView.h
+++ b/llvm/include/llvm/Demangle/StringView.h
@@ -61,10 +61,13 @@ class StringView {
     return StringView(First + N, Last);
   }
 
-  StringView dropBack(size_t N = 1) const {
-    if (N >= size())
-      N = size();
-    return StringView(First, Last - N);
+  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 {

diff  --git a/llvm/lib/Demangle/MicrosoftDemangle.cpp b/llvm/lib/Demangle/MicrosoftDemangle.cpp
index c21b0a30105e8..284daee88f4bf 100644
--- a/llvm/lib/Demangle/MicrosoftDemangle.cpp
+++ b/llvm/lib/Demangle/MicrosoftDemangle.cpp
@@ -158,7 +158,7 @@ static bool startsWithLocalScopePattern(StringView S) {
   // If it's not 0-9, then it's an encoded number terminated with an @
   if (Candidate.back() != '@')
     return false;
-  Candidate = Candidate.dropBack();
+  Candidate.remove_suffix(1);
 
   // An encoded number starts with B-P and all subsequent digits are in A-P.
   // Note that the reason the first digit cannot be A is two fold.  First, it
@@ -168,11 +168,11 @@ static bool startsWithLocalScopePattern(StringView S) {
   // ambiguity is also why single digit encoded numbers use 0-9 rather than A-J.
   if (Candidate[0] < 'B' || Candidate[0] > 'P')
     return false;
-  Candidate = Candidate.dropFront();
+  Candidate.remove_prefix(1);
   while (!Candidate.empty()) {
     if (Candidate[0] < 'A' || Candidate[0] > 'P')
       return false;
-    Candidate = Candidate.dropFront();
+    Candidate.remove_prefix(1);
   }
 
   return true;
@@ -486,7 +486,7 @@ SymbolNode *Demangler::demangleSpecialIntrinsic(StringView &MangledName) {
 IdentifierNode *
 Demangler::demangleFunctionIdentifierCode(StringView &MangledName) {
   assert(MangledName.startsWith('?'));
-  MangledName = MangledName.dropFront();
+  MangledName.remove_prefix(1);
   if (MangledName.empty()) {
     Error = true;
     return nullptr;
@@ -965,7 +965,7 @@ NamedIdentifierNode *Demangler::demangleBackRefName(StringView &MangledName) {
     return nullptr;
   }
 
-  MangledName = MangledName.dropFront();
+  MangledName.remove_prefix(1);
   return Backrefs.Names[I];
 }
 
@@ -1036,7 +1036,7 @@ uint8_t Demangler::demangleCharLiteral(StringView &MangledName) {
   if (!MangledName.startsWith('?'))
     return MangledName.popFront();
 
-  MangledName = MangledName.dropFront();
+  MangledName.remove_prefix(1);
   if (MangledName.empty())
     goto CharLiteralError;
 
@@ -1057,7 +1057,7 @@ uint8_t Demangler::demangleCharLiteral(StringView &MangledName) {
   if (startsWithDigit(MangledName)) {
     const char *Lookup = ",/\\:. \n\t'-";
     char C = Lookup[MangledName[0] - '0'];
-    MangledName = MangledName.dropFront();
+    MangledName.remove_prefix(1);
     return C;
   }
 
@@ -1067,7 +1067,7 @@ uint8_t Demangler::demangleCharLiteral(StringView &MangledName) {
                        '\xEF', '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5',
                        '\xF6', '\xF7', '\xF8', '\xF9', '\xFA'};
     char C = Lookup[MangledName[0] - 'a'];
-    MangledName = MangledName.dropFront();
+    MangledName.remove_prefix(1);
     return C;
   }
 
@@ -1077,7 +1077,7 @@ uint8_t Demangler::demangleCharLiteral(StringView &MangledName) {
                        '\xCF', '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5',
                        '\xD6', '\xD7', '\xD8', '\xD9', '\xDA'};
     char C = Lookup[MangledName[0] - 'A'];
-    MangledName = MangledName.dropFront();
+    MangledName.remove_prefix(1);
     return C;
   }
 
@@ -2124,7 +2124,7 @@ NodeArrayNode *Demangler::demangleFunctionParameterList(StringView &MangledName,
         Error = true;
         return nullptr;
       }
-      MangledName = MangledName.dropFront();
+      MangledName.remove_prefix(1);
 
       *Current = Arena.alloc<NodeList>();
       (*Current)->N = Backrefs.FunctionParams[N];
@@ -2206,7 +2206,7 @@ Demangler::demangleTemplateParameterList(StringView &MangledName) {
       TP.N = TPRN = Arena.alloc<TemplateParameterReferenceNode>();
       TPRN->IsMemberPointer = true;
 
-      MangledName = MangledName.dropFront();
+      MangledName.remove_prefix(1);
       // 1 - single inheritance       <name>
       // H - multiple inheritance     <name> <number>
       // I - virtual inheritance      <name> <number> <number>
@@ -2252,7 +2252,7 @@ Demangler::demangleTemplateParameterList(StringView &MangledName) {
       TP.N = TPRN = Arena.alloc<TemplateParameterReferenceNode>();
 
       // Data member pointer.
-      MangledName = MangledName.dropFront();
+      MangledName.remove_prefix(1);
       char InheritanceSpecifier = MangledName.popFront();
 
       switch (InheritanceSpecifier) {


        


More information about the llvm-commits mailing list