summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/FastDemangle.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos.Bruce Mitchener2015-07-221-1/+1
| | | | | | | | | | | | Summary: Fix a bunch of typos. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D11386 llvm-svn: 242856
* Guard against the case where the Write method is called withJason Molenda2015-04-301-2/+11
| | | | | | | | | | | an argument pointing into the middle of m_buffer and then Write() calls GrowBuffer() to resize m_buffer, leaving the content argument pointing into deallocated memory. Patch by Kate Stone. <rdar://problem/20756722> llvm-svn: 236286
* Improvements to FastDemangler to correct parsing of <local-name> encodings ↵Kate Stone2014-12-061-0/+4
| | | | | | for string literal and parameter/entity cases. Patch courtesy of slydiman. llvm-svn: 223569
* Put #if 0 blocks around three sections of code that are intentionallyJason Molenda2014-10-171-1/+7
| | | | | | | | | | | | unreachable so we don't get warnings about them. Completely initialize a structure instead of leaving some of its fields potentially indeterminate (although in reality they would all be set before use -- but the compiler warning doesn't know that). clang warning. llvm-svn: 220017
* Mechanical change to FastDemangle to make it closer to the lldbJason Molenda2014-10-151-645/+839
| | | | | | | coding conventions. Lots of whitespace et al changes but no content changes. llvm-svn: 219856
* Dramatically improves C++ demangling performance by introducing a new ↵Kate Stone2014-07-221-0/+2203
implementation that is much faster than the existing demangler. While not yet complete, the new demangler will fail gracefully when it encounters symbols it isn’t prepared to deal with. In these cases LLDB will fall back to using the full demangler to prevent a loss in functionality. On sizable code bases the fast path succeeds 95% of the time, providing a significant net win. The new implementation is located in source/Core/FastDemangle.cpp. It’s fairly straightforward C code with a few basic C++ extensions. It should compile with little or no change on a variety of platforms, but of course it is still only useful for symbols that comply with the Itanium ABI mangling spec (plus a few Clang extensions.) <rdar://problem/15397553> <rdar://problem/15794867> llvm-svn: 213671
OpenPOWER on IntegriCloud