[Lldb-commits] [lldb] r301903 - Remove unused code related to CPlusPlusLanguage::FindEquivalentNames

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue May 2 02:00:53 PDT 2017


Author: labath
Date: Tue May  2 04:00:52 2017
New Revision: 301903

URL: http://llvm.org/viewvc/llvm-project?rev=301903&view=rev
Log:
Remove unused code related to CPlusPlusLanguage::FindEquivalentNames

Summary: It is simply unused, and the header for it is private, so there should be no external dependencies.

Reviewers: #lldb, zturner

Reviewed By: zturner

Subscribers: zturner, tberghammer, jingham, lldb-commits

Differential Revision: https://reviews.llvm.org/D32503
Patch by Scott Smith <scott.smith at purestorage.com>.

Modified:
    lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp?rev=301903&r1=301902&r2=301903&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp Tue May  2 04:00:52 2017
@@ -271,144 +271,6 @@ bool CPlusPlusLanguage::ExtractContextAn
   return false;
 }
 
-class CPPRuntimeEquivalents {
-public:
-  CPPRuntimeEquivalents() {
-    m_impl.Append(ConstString("std::basic_string<char, std::char_traits<char>, "
-                              "std::allocator<char> >")
-                      .GetStringRef(),
-                  ConstString("basic_string<char>"));
-
-    // these two (with a prefixed std::) occur when c++stdlib string class
-    // occurs as a template argument in some STL container
-    m_impl.Append(ConstString("std::basic_string<char, std::char_traits<char>, "
-                              "std::allocator<char> >")
-                      .GetStringRef(),
-                  ConstString("std::basic_string<char>"));
-
-    m_impl.Sort();
-  }
-
-  void Add(ConstString &type_name, ConstString &type_equivalent) {
-    m_impl.Insert(type_name.GetStringRef(), type_equivalent);
-  }
-
-  uint32_t FindExactMatches(ConstString &type_name,
-                            std::vector<ConstString> &equivalents) {
-    uint32_t count = 0;
-
-    for (ImplData match =
-             m_impl.FindFirstValueForName(type_name.GetStringRef());
-         match != nullptr; match = m_impl.FindNextValueForName(match)) {
-      equivalents.push_back(match->value);
-      count++;
-    }
-
-    return count;
-  }
-
-  // partial matches can occur when a name with equivalents is a template
-  // argument.
-  // e.g. we may have "class Foo" be a match for "struct Bar". if we have a
-  // typename
-  // such as "class Templatized<class Foo, Anything>" we want this to be
-  // replaced with
-  // "class Templatized<struct Bar, Anything>". Since partial matching is time
-  // consuming
-  // once we get a partial match, we add it to the exact matches list for faster
-  // retrieval
-  uint32_t FindPartialMatches(ConstString &type_name,
-                              std::vector<ConstString> &equivalents) {
-    uint32_t count = 0;
-
-    llvm::StringRef type_name_cstr = type_name.GetStringRef();
-
-    size_t items_count = m_impl.GetSize();
-
-    for (size_t item = 0; item < items_count; item++) {
-      llvm::StringRef key_cstr = m_impl.GetCStringAtIndex(item);
-      if (type_name_cstr.contains(key_cstr)) {
-        count += AppendReplacements(type_name_cstr, key_cstr, equivalents);
-      }
-    }
-
-    return count;
-  }
-
-private:
-  std::string &replace(std::string &target, std::string &pattern,
-                       std::string &with) {
-    size_t pos;
-    size_t pattern_len = pattern.size();
-
-    while ((pos = target.find(pattern)) != std::string::npos)
-      target.replace(pos, pattern_len, with);
-
-    return target;
-  }
-
-  uint32_t AppendReplacements(llvm::StringRef original,
-                              llvm::StringRef matching_key,
-                              std::vector<ConstString> &equivalents) {
-    std::string matching_key_str(matching_key);
-    ConstString original_const(original);
-
-    uint32_t count = 0;
-
-    for (ImplData match = m_impl.FindFirstValueForName(matching_key);
-         match != nullptr; match = m_impl.FindNextValueForName(match)) {
-      std::string target(original);
-      std::string equiv_class(match->value.AsCString());
-
-      replace(target, matching_key_str, equiv_class);
-
-      ConstString target_const(target.c_str());
-
-// you will most probably want to leave this off since it might make this map
-// grow indefinitely
-#ifdef ENABLE_CPP_EQUIVALENTS_MAP_TO_GROW
-      Add(original_const, target_const);
-#endif
-      equivalents.push_back(target_const);
-
-      count++;
-    }
-
-    return count;
-  }
-
-  typedef UniqueCStringMap<ConstString> Impl;
-  typedef const Impl::Entry *ImplData;
-  Impl m_impl;
-};
-
-static CPPRuntimeEquivalents &GetEquivalentsMap() {
-  static CPPRuntimeEquivalents g_equivalents_map;
-  return g_equivalents_map;
-}
-
-uint32_t
-CPlusPlusLanguage::FindEquivalentNames(ConstString type_name,
-                                       std::vector<ConstString> &equivalents) {
-  uint32_t count = GetEquivalentsMap().FindExactMatches(type_name, equivalents);
-
-  bool might_have_partials =
-      (count == 0) // if we have a full name match just use it
-      && (strchr(type_name.AsCString(), '<') !=
-              nullptr // we should only have partial matches when templates are
-                      // involved, check that we have
-          && strchr(type_name.AsCString(), '>') != nullptr); // angle brackets
-                                                             // in the type_name
-                                                             // before trying to
-                                                             // scan for partial
-                                                             // matches
-
-  if (might_have_partials)
-    count = GetEquivalentsMap().FindPartialMatches(type_name, equivalents);
-
-  return count;
-}
-
 /// Given a mangled function `mangled`, replace all the primitive function type
 /// arguments of `search` with type `replace`.
 static ConstString SubsPrimitiveParmItanium(llvm::StringRef mangled,

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h?rev=301903&r1=301902&r2=301903&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h Tue May  2 04:00:52 2017
@@ -119,18 +119,6 @@ public:
                                           llvm::StringRef &context,
                                           llvm::StringRef &identifier);
 
-  // in some cases, compilers will output different names for one same type.
-  // when that happens, it might be impossible
-  // to construct SBType objects for a valid type, because the name that is
-  // available is not the same as the name that
-  // can be used as a search key in FindTypes(). the equivalents map here is
-  // meant to return possible alternative names
-  // for a type through which a search can be conducted. Currently, this is only
-  // enabled for C++ but can be extended
-  // to ObjC or other languages if necessary
-  static uint32_t FindEquivalentNames(ConstString type_name,
-                                      std::vector<ConstString> &equivalents);
-
   // Given a mangled function name, calculates some alternative manglings since
   // the compiler mangling may not line up with the symbol we are expecting
   static uint32_t




More information about the lldb-commits mailing list