llvm-project/libcxxabi
Pavel Labath 49b29eabc6 cxa_demangle: make demangler's parsing functions overridable
Summary:
This uses CRTP (for performance reasons) to allow a user the override
demangler functions to implement custom parsing logic. The motivation
for this is LLDB, which needs to occasionaly modify the mangled names.
One such instance is already implemented via the TypeCallback member,
but this is very specific functionality which does not help with any
other use case. Currently we have a use case for modifying the
constructor flavours, which would require adding another callback. This
approach does not scale.

With CRTP, the user (LLDB) can override any function it needs without
any special support from the demangler library. After LLDB is ported to
use this instead of the TypeCallback mechanism, the callback can be
removed.

More context can be found in D50599.

Reviewers: erik.pilkington, rsmith

Subscribers: christof, ldionne, llvm-commits, libcxx-commits

Differential Revision: https://reviews.llvm.org/D52992

llvm-svn: 344607
2018-10-16 14:29:14 +00:00
..
cmake [CMake] Convert paths to the right form in standalone builds on Windows 2018-06-20 20:59:18 +00:00
fuzz add cxa_demangle_fuzzer 2016-12-28 03:28:29 +00:00
include [CFI] Disable CFI checks for __cxa_decrement_exception_refcount 2018-04-09 22:11:28 +00:00
lib
src cxa_demangle: make demangler's parsing functions overridable 2018-10-16 14:29:14 +00:00
test [libcxxabi] Allow building with sanitizers enabled 2018-10-10 22:00:58 +00:00
www Update docs to reference new libc++ mailing lists. 2018-09-22 19:52:12 +00:00
.arcconfig [libcxxabi] Set up .arcconfig to point to new Diffusion CXXA repository 2017-12-04 23:14:03 +00:00
.clang-format Fully Reformat fallback_malloc.cpp 2017-03-04 03:23:15 +00:00
.gitignore .gitignore: ignore vim swap files 2015-12-04 02:15:02 +00:00
CMakeLists.txt Update version to 8.0.0svn 2018-08-01 14:25:03 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:28 +00:00
LICENSE.TXT Update copyright year to 2018. 2018-06-18 12:22:17 +00:00