summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/FastDemangle.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move many other files from Core -> Utility.Zachary Turner2017-03-061-2396/+0
| | | | llvm-svn: 297043
* Expression evaluation for overloaded C functions (redux)Luke Drummond2016-12-191-4/+34
| | | | | | | | | | | | | | | | | | | This is a redux of [Ewan's patch](https://reviews.llvm.org/D17957) , refactored to properly substitute primitive types using a hook in the itanium demangler, and updated after the previous patch went stale The new `SubsPrimitiveParmItanium` function takes a symbol name and replacement primitive type parameter as before but parses it using the FastDemangler, which has been modified to be able to notify clients of parse events (primitive types at this point). Additionally, we now use a `set` of `ConstStrings` instead of a `vector` so that we don't try and resolve the same invalid candidate multiple times. Differential Revision: https://reviews.llvm.org/D27223 Subscribers: lldb-commits llvm-svn: 290117
* *** This commit represents a complete reformatting of the LLDB source codeKate Stone2016-09-061-2098/+2045
| | | | | | | | | | | | | | | | | | | | | | | *** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications: Firstly, merging this particular commit into a downstream fork may be a huge effort. Alternatively, it may be worth merging all changes up to this commit, performing the same reformatting operation locally, and then discarding the merge for this particular commit. The commands used to accomplish this reformatting were as follows (with current working directory as the root of the repository): find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ; The version of clang-format used was 3.9.0, and autopep8 was 1.2.4. Secondly, “blame” style tools will generally point to this commit instead of a meaningful prior commit. There are alternatives available that will attempt to look through this change and find the appropriate prior commit. YMMV. llvm-svn: 280751
* Fix all of the unannotated switch cases to annotate the fall through or do ↵Greg Clayton2016-02-261-0/+1
| | | | | | the right thing and break. llvm-svn: 261950
* Add -Wimplicit-fallthrough command line option to clang inJason Molenda2016-02-161-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the xcode project file to catch switch statements that have a case that falls through unintentionally. Define LLVM_FALLTHROUGH to indicate instances where a case has code and intends to fall through. This should be in llvm/Support/Compiler.h; Peter Collingbourne originally checked in there (r237766), then reverted (r237941) because he didn't have time to mark up all the 'case' statements that were intended to fall through. I put together a patch to get this back in llvm http://reviews.llvm.org/D17063 but it hasn't been approved in the past week. I added a new lldb-private-defines.h to hold the definition for now. Every place in lldb where there is a comment that the fall-through is intentional, I added LLVM_FALLTHROUGH to silence the warning. I haven't tried to identify whether the fallthrough is a bug or not in the other places. I haven't tried to add this to the cmake option build flags. This warning will only work for clang. This build cleanly (with some new warnings) on macosx with clang under xcodebuild, but if this causes problems for people on other configurations, I'll back it out. llvm-svn: 260930
* 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