[PATCH] D41885: [libcxxabi][demangler] Improve handling of variadic templates
Erik Pilkington via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 9 15:27:09 PST 2018
erik.pilkington added inline comments.
================
Comment at: src/cxa_demangle.cpp:130
- // Offset of position in buffer, used for building stream_string_view.
- typedef unsigned StreamPosition;
-
----------------
This caching API is being removed because it is no longer valid: if a node has an unexpanded parameter pack it can generate multiple different strings.
================
Comment at: src/cxa_demangle.cpp:1599
-template <size_t Size>
-class SubstitutionTable {
- // Substitutions hold the actual entries in the table, and PackIndices tells
----------------
This type was an optimization that flattened the previously 2d vector of substitutions (index * pack) into two 1d vectors. Now that packs are represented with a single Node*, we can replace it with a simple vector.
================
Comment at: test/test_demangle.pass.cpp:29607
{"_ZTHN3fooE", "thread-local initialization routine for foo"},
- {"_Z4algoIJiiiEEvZ1gEUlT_E_", "void algo<int, int, int>(g::'lambda'(int, int, int))"},
+ {"_Z4algoIJiiiEEvZ1gEUlDpT_E_", "void algo<int, int, int>(g::'lambda'(int, int, int))"},
// attribute abi_tag
----------------
I just generated this symbol by hand because I couldn't get clang to do it without crashing. Turns out I forgot the Dp!
Repository:
rCXXA libc++abi
https://reviews.llvm.org/D41885
More information about the cfe-commits
mailing list