[Lldb-commits] [PATCH] D17618: Improve looking up functions with equivalent mangled names.

Siva Chandra via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 25 10:58:29 PST 2016


sivachandra created this revision.
sivachandra added reviewers: spyffe, clayborg.
sivachandra added a subscriber: lldb-commits.

This, in a way, extends the existing "workaroud" by matching function
argument type names individually [instead of just matching "(args1...)"
with "(args2...)"]. For type name matching, a new method
CPlusPlusLanguage::TypeNamesEqual has been added. For now, this method
can only handle variations like:

 <typename> * vs <typename>*
 const <typename> vs <typename> const
 const <typename> * const vs <typename> const * const

We can extend it to handle more complex name formats as needed.

The immediate benefit of this change is with evaluating std::map's
subscript operator when producer is GCC. Consider the following:

  std::map<std::string, std::string> m;
  std::string s("1");
  m[s] = "one";
  ... ; // Break here

The command "expr m[s]" fails without this change if the producer is
GCC.

http://reviews.llvm.org/D17618

Files:
  include/lldb/Symbol/SymbolFile.h
  packages/Python/lldbsuite/test/lang/cpp/stl/TestSTL.py
  packages/Python/lldbsuite/test/lang/cpp/stl/main.cpp
  source/Expression/IRExecutionUnit.cpp
  source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
  source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
  source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
  source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
  source/Symbol/SymbolFile.cpp
  unittests/CMakeLists.txt
  unittests/Language/CMakeLists.txt
  unittests/Language/CPlusPlus/CMakeLists.txt
  unittests/Language/CPlusPlus/TypeNamesEqualityTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17618.49096.patch
Type: text/x-patch
Size: 17499 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160225/15c69337/attachment-0001.bin>


More information about the lldb-commits mailing list