/src/llvm-project/libcxxabi/src/cxa_demangle.cpp
Line | Count | Source |
1 | | //===----------------------------------------------------------------------===// |
2 | | // |
3 | | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | | // See https://llvm.org/LICENSE.txt for license information. |
5 | | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | |
9 | | // FIXME: (possibly) incomplete list of features that clang mangles that this |
10 | | // file does not yet support: |
11 | | // - C++ modules TS |
12 | | |
13 | | #include "abort_message.h" |
14 | 364k | #define DEMANGLE_ASSERT(expr, msg) _LIBCXXABI_ASSERT(expr, msg) |
15 | | |
16 | | #include "demangle/DemangleConfig.h" |
17 | | #include "demangle/ItaniumDemangle.h" |
18 | | #include "__cxxabi_config.h" |
19 | | #include <cctype> |
20 | | #include <cstdio> |
21 | | #include <cstdlib> |
22 | | #include <cstring> |
23 | | #include <exception> |
24 | | #include <functional> |
25 | | #include <numeric> |
26 | | #include <string_view> |
27 | | #include <utility> |
28 | | |
29 | | using namespace itanium_demangle; |
30 | | |
31 | | // <discriminator> := _ <non-negative number> # when number < 10 |
32 | | // := __ <non-negative number> _ # when number >= 10 |
33 | | // extension := decimal-digit+ # at the end of string |
34 | | const char *itanium_demangle::parse_discriminator(const char *first, |
35 | 0 | const char *last) { |
36 | | // parse but ignore discriminator |
37 | 0 | if (first != last) { |
38 | 0 | if (*first == '_') { |
39 | 0 | const char *t1 = first + 1; |
40 | 0 | if (t1 != last) { |
41 | 0 | if (std::isdigit(*t1)) |
42 | 0 | first = t1 + 1; |
43 | 0 | else if (*t1 == '_') { |
44 | 0 | for (++t1; t1 != last && std::isdigit(*t1); ++t1) |
45 | 0 | ; |
46 | 0 | if (t1 != last && *t1 == '_') |
47 | 0 | first = t1 + 1; |
48 | 0 | } |
49 | 0 | } |
50 | 0 | } else if (std::isdigit(*first)) { |
51 | 0 | const char *t1 = first + 1; |
52 | 0 | for (; t1 != last && std::isdigit(*t1); ++t1) |
53 | 0 | ; |
54 | 0 | if (t1 == last) |
55 | 0 | first = last; |
56 | 0 | } |
57 | 0 | } |
58 | 0 | return first; |
59 | 0 | } |
60 | | |
61 | | #ifndef NDEBUG |
62 | | namespace { |
63 | | struct DumpVisitor { |
64 | | unsigned Depth = 0; |
65 | | bool PendingNewline = false; |
66 | | |
67 | 0 | template<typename NodeT> static constexpr bool wantsNewline(const NodeT *) { |
68 | 0 | return true; |
69 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::wantsNewline<(anonymous namespace)::itanium_demangle::Node>((anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::wantsNewline<(anonymous namespace)::itanium_demangle::ModuleName>((anonymous namespace)::itanium_demangle::ModuleName const*) |
70 | 0 | static bool wantsNewline(NodeArray A) { return !A.empty(); } |
71 | 0 | static constexpr bool wantsNewline(...) { return false; } |
72 | | |
73 | 0 | template<typename ...Ts> static bool anyWantNewline(Ts ...Vs) { |
74 | 0 | for (bool B : {wantsNewline(Vs)...}) |
75 | 0 | if (B) |
76 | 0 | return true; |
77 | 0 | return false; |
78 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::Node*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::ReferenceKind>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::ReferenceKind) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*, bool>((anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*, bool) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, bool>((anonymous namespace)::itanium_demangle::Node const*, bool) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::TemplateParamKind, unsigned int>((anonymous namespace)::itanium_demangle::TemplateParamKind, unsigned int) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<unsigned long>(unsigned long) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::SpecialSubKind>((anonymous namespace)::itanium_demangle::SpecialSubKind) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, bool, int>((anonymous namespace)::itanium_demangle::Node const*, bool, int) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::NodeArray, bool>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::NodeArray, bool) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, bool, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node*, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*>(bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<bool>(bool) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, bool>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, bool) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:bool (anonymous namespace)::DumpVisitor::anyWantNewline<(anonymous namespace)::itanium_demangle::Node const*, bool, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, bool, (anonymous namespace)::itanium_demangle::Node const*) |
79 | | |
80 | 0 | void printStr(const char *S) { fprintf(stderr, "%s", S); } |
81 | 0 | void print(std::string_view SV) { |
82 | 0 | fprintf(stderr, "\"%.*s\"", (int)SV.size(), &*SV.begin()); |
83 | 0 | } |
84 | 0 | void print(const Node *N) { |
85 | 0 | if (N) |
86 | 0 | N->visit(std::ref(*this)); |
87 | 0 | else |
88 | 0 | printStr("<null>"); |
89 | 0 | } |
90 | 0 | void print(NodeArray A) { |
91 | 0 | ++Depth; |
92 | 0 | printStr("{"); |
93 | 0 | bool First = true; |
94 | 0 | for (const Node *N : A) { |
95 | 0 | if (First) |
96 | 0 | print(N); |
97 | 0 | else |
98 | 0 | printWithComma(N); |
99 | 0 | First = false; |
100 | 0 | } |
101 | 0 | printStr("}"); |
102 | 0 | --Depth; |
103 | 0 | } |
104 | | |
105 | | // Overload used when T is exactly 'bool', not merely convertible to 'bool'. |
106 | 0 | void print(bool B) { printStr(B ? "true" : "false"); } |
107 | | |
108 | | template <class T> |
109 | 0 | typename std::enable_if<std::is_unsigned<T>::value>::type print(T N) { |
110 | 0 | fprintf(stderr, "%llu", (unsigned long long)N); |
111 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:_ZN12_GLOBAL__N_111DumpVisitor5printIjEENSt3__19enable_ifIXsr3std11is_unsignedIT_EE5valueEvE4typeES4_ Unexecuted instantiation: cxa_demangle.cpp:_ZN12_GLOBAL__N_111DumpVisitor5printImEENSt3__19enable_ifIXsr3std11is_unsignedIT_EE5valueEvE4typeES4_ |
112 | | |
113 | | template <class T> |
114 | 0 | typename std::enable_if<std::is_signed<T>::value>::type print(T N) { |
115 | 0 | fprintf(stderr, "%lld", (long long)N); |
116 | 0 | } |
117 | | |
118 | 0 | void print(ReferenceKind RK) { |
119 | 0 | switch (RK) { |
120 | 0 | case ReferenceKind::LValue: |
121 | 0 | return printStr("ReferenceKind::LValue"); |
122 | 0 | case ReferenceKind::RValue: |
123 | 0 | return printStr("ReferenceKind::RValue"); |
124 | 0 | } |
125 | 0 | } |
126 | 0 | void print(FunctionRefQual RQ) { |
127 | 0 | switch (RQ) { |
128 | 0 | case FunctionRefQual::FrefQualNone: |
129 | 0 | return printStr("FunctionRefQual::FrefQualNone"); |
130 | 0 | case FunctionRefQual::FrefQualLValue: |
131 | 0 | return printStr("FunctionRefQual::FrefQualLValue"); |
132 | 0 | case FunctionRefQual::FrefQualRValue: |
133 | 0 | return printStr("FunctionRefQual::FrefQualRValue"); |
134 | 0 | } |
135 | 0 | } |
136 | 0 | void print(Qualifiers Qs) { |
137 | 0 | if (!Qs) return printStr("QualNone"); |
138 | 0 | struct QualName { Qualifiers Q; const char *Name; } Names[] = { |
139 | 0 | {QualConst, "QualConst"}, |
140 | 0 | {QualVolatile, "QualVolatile"}, |
141 | 0 | {QualRestrict, "QualRestrict"}, |
142 | 0 | }; |
143 | 0 | for (QualName Name : Names) { |
144 | 0 | if (Qs & Name.Q) { |
145 | 0 | printStr(Name.Name); |
146 | 0 | Qs = Qualifiers(Qs & ~Name.Q); |
147 | 0 | if (Qs) printStr(" | "); |
148 | 0 | } |
149 | 0 | } |
150 | 0 | } |
151 | 0 | void print(SpecialSubKind SSK) { |
152 | 0 | switch (SSK) { |
153 | 0 | case SpecialSubKind::allocator: |
154 | 0 | return printStr("SpecialSubKind::allocator"); |
155 | 0 | case SpecialSubKind::basic_string: |
156 | 0 | return printStr("SpecialSubKind::basic_string"); |
157 | 0 | case SpecialSubKind::string: |
158 | 0 | return printStr("SpecialSubKind::string"); |
159 | 0 | case SpecialSubKind::istream: |
160 | 0 | return printStr("SpecialSubKind::istream"); |
161 | 0 | case SpecialSubKind::ostream: |
162 | 0 | return printStr("SpecialSubKind::ostream"); |
163 | 0 | case SpecialSubKind::iostream: |
164 | 0 | return printStr("SpecialSubKind::iostream"); |
165 | 0 | } |
166 | 0 | } |
167 | 0 | void print(TemplateParamKind TPK) { |
168 | 0 | switch (TPK) { |
169 | 0 | case TemplateParamKind::Type: |
170 | 0 | return printStr("TemplateParamKind::Type"); |
171 | 0 | case TemplateParamKind::NonType: |
172 | 0 | return printStr("TemplateParamKind::NonType"); |
173 | 0 | case TemplateParamKind::Template: |
174 | 0 | return printStr("TemplateParamKind::Template"); |
175 | 0 | } |
176 | 0 | } |
177 | 0 | void print(Node::Prec P) { |
178 | 0 | switch (P) { |
179 | 0 | case Node::Prec::Primary: |
180 | 0 | return printStr("Node::Prec::Primary"); |
181 | 0 | case Node::Prec::Postfix: |
182 | 0 | return printStr("Node::Prec::Postfix"); |
183 | 0 | case Node::Prec::Unary: |
184 | 0 | return printStr("Node::Prec::Unary"); |
185 | 0 | case Node::Prec::Cast: |
186 | 0 | return printStr("Node::Prec::Cast"); |
187 | 0 | case Node::Prec::PtrMem: |
188 | 0 | return printStr("Node::Prec::PtrMem"); |
189 | 0 | case Node::Prec::Multiplicative: |
190 | 0 | return printStr("Node::Prec::Multiplicative"); |
191 | 0 | case Node::Prec::Additive: |
192 | 0 | return printStr("Node::Prec::Additive"); |
193 | 0 | case Node::Prec::Shift: |
194 | 0 | return printStr("Node::Prec::Shift"); |
195 | 0 | case Node::Prec::Spaceship: |
196 | 0 | return printStr("Node::Prec::Spaceship"); |
197 | 0 | case Node::Prec::Relational: |
198 | 0 | return printStr("Node::Prec::Relational"); |
199 | 0 | case Node::Prec::Equality: |
200 | 0 | return printStr("Node::Prec::Equality"); |
201 | 0 | case Node::Prec::And: |
202 | 0 | return printStr("Node::Prec::And"); |
203 | 0 | case Node::Prec::Xor: |
204 | 0 | return printStr("Node::Prec::Xor"); |
205 | 0 | case Node::Prec::Ior: |
206 | 0 | return printStr("Node::Prec::Ior"); |
207 | 0 | case Node::Prec::AndIf: |
208 | 0 | return printStr("Node::Prec::AndIf"); |
209 | 0 | case Node::Prec::OrIf: |
210 | 0 | return printStr("Node::Prec::OrIf"); |
211 | 0 | case Node::Prec::Conditional: |
212 | 0 | return printStr("Node::Prec::Conditional"); |
213 | 0 | case Node::Prec::Assign: |
214 | 0 | return printStr("Node::Prec::Assign"); |
215 | 0 | case Node::Prec::Comma: |
216 | 0 | return printStr("Node::Prec::Comma"); |
217 | 0 | case Node::Prec::Default: |
218 | 0 | return printStr("Node::Prec::Default"); |
219 | 0 | } |
220 | 0 | } |
221 | | |
222 | 0 | void newLine() { |
223 | 0 | printStr("\n"); |
224 | 0 | for (unsigned I = 0; I != Depth; ++I) |
225 | 0 | printStr(" "); |
226 | 0 | PendingNewline = false; |
227 | 0 | } |
228 | | |
229 | 0 | template<typename T> void printWithPendingNewline(T V) { |
230 | 0 | print(V); |
231 | 0 | if (wantsNewline(V)) |
232 | 0 | PendingNewline = true; |
233 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::Qualifiers>((anonymous namespace)::itanium_demangle::Qualifiers) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::ReferenceKind>((anonymous namespace)::itanium_demangle::ReferenceKind) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::FunctionRefQual>((anonymous namespace)::itanium_demangle::FunctionRefQual) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::ModuleName*>((anonymous namespace)::itanium_demangle::ModuleName*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<bool>(bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::TemplateParamKind>((anonymous namespace)::itanium_demangle::TemplateParamKind) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<unsigned int>(unsigned int) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<unsigned long>(unsigned long) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::SpecialSubKind>((anonymous namespace)::itanium_demangle::SpecialSubKind) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<int>(int) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithPendingNewline<(anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node::Prec) |
234 | | |
235 | 0 | template<typename T> void printWithComma(T V) { |
236 | 0 | if (PendingNewline || wantsNewline(V)) { |
237 | 0 | printStr(","); |
238 | 0 | newLine(); |
239 | 0 | } else { |
240 | 0 | printStr(", "); |
241 | 0 | } |
242 | |
|
243 | 0 | printWithPendingNewline(V); |
244 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::Qualifiers>((anonymous namespace)::itanium_demangle::Qualifiers) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::ReferenceKind>((anonymous namespace)::itanium_demangle::ReferenceKind) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::FunctionRefQual>((anonymous namespace)::itanium_demangle::FunctionRefQual) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<bool>(bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<unsigned int>(unsigned int) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<int>(int) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::printWithComma<(anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node::Prec) |
245 | | |
246 | | struct CtorArgPrinter { |
247 | | DumpVisitor &Visitor; |
248 | | |
249 | 0 | template<typename T, typename ...Rest> void operator()(T V, Rest ...Vs) { |
250 | 0 | if (Visitor.anyWantNewline(V, Vs...)) |
251 | 0 | Visitor.newLine(); |
252 | 0 | Visitor.printWithPendingNewline(V); |
253 | 0 | int PrintInOrder[] = { (Visitor.printWithComma(Vs), 0)..., 0 }; |
254 | 0 | (void)PrintInOrder; |
255 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >>(std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::Node*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::ReferenceKind>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::ReferenceKind) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Qualifiers, (anonymous namespace)::itanium_demangle::FunctionRefQual) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*, bool>((anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*, bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::ModuleName*, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, bool>((anonymous namespace)::itanium_demangle::Node const*, bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::TemplateParamKind, unsigned int>((anonymous namespace)::itanium_demangle::TemplateParamKind, unsigned int) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*>((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<unsigned long>(unsigned long) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::SpecialSubKind>((anonymous namespace)::itanium_demangle::SpecialSubKind) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, bool, int>((anonymous namespace)::itanium_demangle::Node const*, bool, int) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::NodeArray, bool>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::NodeArray, bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, bool, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::NodeArray, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node*, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*, bool, bool, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node::Prec) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*>(bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<bool>(bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, bool>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, bool) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*, (anonymous namespace)::itanium_demangle::Node const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::NodeArray) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::CtorArgPrinter::operator()<(anonymous namespace)::itanium_demangle::Node const*, bool, (anonymous namespace)::itanium_demangle::Node const*>((anonymous namespace)::itanium_demangle::Node const*, bool, (anonymous namespace)::itanium_demangle::Node const*) |
256 | | }; |
257 | | |
258 | 0 | template<typename NodeT> void operator()(const NodeT *Node) { |
259 | 0 | Depth += 2; |
260 | 0 | fprintf(stderr, "%s(", itanium_demangle::NodeKind<NodeT>::name()); |
261 | 0 | Node->match(CtorArgPrinter{*this}); |
262 | 0 | fprintf(stderr, ")"); |
263 | 0 | Depth -= 2; |
264 | 0 | } Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NodeArrayNode>((anonymous namespace)::itanium_demangle::NodeArrayNode const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::DotSuffix>((anonymous namespace)::itanium_demangle::DotSuffix const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::VendorExtQualType>((anonymous namespace)::itanium_demangle::VendorExtQualType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::QualType>((anonymous namespace)::itanium_demangle::QualType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ConversionOperatorType>((anonymous namespace)::itanium_demangle::ConversionOperatorType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PostfixQualifiedType>((anonymous namespace)::itanium_demangle::PostfixQualifiedType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ElaboratedTypeSpefType>((anonymous namespace)::itanium_demangle::ElaboratedTypeSpefType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TransformedType>((anonymous namespace)::itanium_demangle::TransformedType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NameType>((anonymous namespace)::itanium_demangle::NameType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::AbiTagAttr>((anonymous namespace)::itanium_demangle::AbiTagAttr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::EnableIfAttr>((anonymous namespace)::itanium_demangle::EnableIfAttr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ObjCProtoName>((anonymous namespace)::itanium_demangle::ObjCProtoName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PointerType>((anonymous namespace)::itanium_demangle::PointerType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ReferenceType>((anonymous namespace)::itanium_demangle::ReferenceType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PointerToMemberType>((anonymous namespace)::itanium_demangle::PointerToMemberType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ArrayType>((anonymous namespace)::itanium_demangle::ArrayType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FunctionType>((anonymous namespace)::itanium_demangle::FunctionType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NoexceptSpec>((anonymous namespace)::itanium_demangle::NoexceptSpec const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::DynamicExceptionSpec>((anonymous namespace)::itanium_demangle::DynamicExceptionSpec const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FunctionEncoding>((anonymous namespace)::itanium_demangle::FunctionEncoding const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::LiteralOperator>((anonymous namespace)::itanium_demangle::LiteralOperator const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::SpecialName>((anonymous namespace)::itanium_demangle::SpecialName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::CtorVtableSpecialName>((anonymous namespace)::itanium_demangle::CtorVtableSpecialName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::QualifiedName>((anonymous namespace)::itanium_demangle::QualifiedName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NestedName>((anonymous namespace)::itanium_demangle::NestedName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::MemberLikeFriendName>((anonymous namespace)::itanium_demangle::MemberLikeFriendName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::LocalName>((anonymous namespace)::itanium_demangle::LocalName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ModuleName>((anonymous namespace)::itanium_demangle::ModuleName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ModuleEntity>((anonymous namespace)::itanium_demangle::ModuleEntity const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::VectorType>((anonymous namespace)::itanium_demangle::VectorType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PixelVectorType>((anonymous namespace)::itanium_demangle::PixelVectorType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::BinaryFPType>((anonymous namespace)::itanium_demangle::BinaryFPType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::BitIntType>((anonymous namespace)::itanium_demangle::BitIntType const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::SyntheticTemplateParamName>((anonymous namespace)::itanium_demangle::SyntheticTemplateParamName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TemplateParamQualifiedArg>((anonymous namespace)::itanium_demangle::TemplateParamQualifiedArg const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TypeTemplateParamDecl>((anonymous namespace)::itanium_demangle::TypeTemplateParamDecl const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ConstrainedTypeTemplateParamDecl>((anonymous namespace)::itanium_demangle::ConstrainedTypeTemplateParamDecl const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NonTypeTemplateParamDecl>((anonymous namespace)::itanium_demangle::NonTypeTemplateParamDecl const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TemplateTemplateParamDecl>((anonymous namespace)::itanium_demangle::TemplateTemplateParamDecl const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TemplateParamPackDecl>((anonymous namespace)::itanium_demangle::TemplateParamPackDecl const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ParameterPack>((anonymous namespace)::itanium_demangle::ParameterPack const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TemplateArgumentPack>((anonymous namespace)::itanium_demangle::TemplateArgumentPack const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ParameterPackExpansion>((anonymous namespace)::itanium_demangle::ParameterPackExpansion const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TemplateArgs>((anonymous namespace)::itanium_demangle::TemplateArgs const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NameWithTemplateArgs>((anonymous namespace)::itanium_demangle::NameWithTemplateArgs const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::GlobalQualifiedName>((anonymous namespace)::itanium_demangle::GlobalQualifiedName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ExpandedSpecialSubstitution>((anonymous namespace)::itanium_demangle::ExpandedSpecialSubstitution const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::SpecialSubstitution>((anonymous namespace)::itanium_demangle::SpecialSubstitution const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::CtorDtorName>((anonymous namespace)::itanium_demangle::CtorDtorName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::DtorName>((anonymous namespace)::itanium_demangle::DtorName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::UnnamedTypeName>((anonymous namespace)::itanium_demangle::UnnamedTypeName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ClosureTypeName>((anonymous namespace)::itanium_demangle::ClosureTypeName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::StructuredBindingName>((anonymous namespace)::itanium_demangle::StructuredBindingName const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::BinaryExpr>((anonymous namespace)::itanium_demangle::BinaryExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ArraySubscriptExpr>((anonymous namespace)::itanium_demangle::ArraySubscriptExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PostfixExpr>((anonymous namespace)::itanium_demangle::PostfixExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ConditionalExpr>((anonymous namespace)::itanium_demangle::ConditionalExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::MemberExpr>((anonymous namespace)::itanium_demangle::MemberExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::SubobjectExpr>((anonymous namespace)::itanium_demangle::SubobjectExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::EnclosingExpr>((anonymous namespace)::itanium_demangle::EnclosingExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::CastExpr>((anonymous namespace)::itanium_demangle::CastExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::SizeofParamPackExpr>((anonymous namespace)::itanium_demangle::SizeofParamPackExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::CallExpr>((anonymous namespace)::itanium_demangle::CallExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NewExpr>((anonymous namespace)::itanium_demangle::NewExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::DeleteExpr>((anonymous namespace)::itanium_demangle::DeleteExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PrefixExpr>((anonymous namespace)::itanium_demangle::PrefixExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FunctionParam>((anonymous namespace)::itanium_demangle::FunctionParam const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ConversionExpr>((anonymous namespace)::itanium_demangle::ConversionExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PointerToMemberConversionExpr>((anonymous namespace)::itanium_demangle::PointerToMemberConversionExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::InitListExpr>((anonymous namespace)::itanium_demangle::InitListExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FoldExpr>((anonymous namespace)::itanium_demangle::FoldExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ThrowExpr>((anonymous namespace)::itanium_demangle::ThrowExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::BoolExpr>((anonymous namespace)::itanium_demangle::BoolExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::StringLiteral>((anonymous namespace)::itanium_demangle::StringLiteral const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::LambdaExpr>((anonymous namespace)::itanium_demangle::LambdaExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::EnumLiteral>((anonymous namespace)::itanium_demangle::EnumLiteral const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::IntegerLiteral>((anonymous namespace)::itanium_demangle::IntegerLiteral const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FloatLiteralImpl<float> >((anonymous namespace)::itanium_demangle::FloatLiteralImpl<float> const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FloatLiteralImpl<double> >((anonymous namespace)::itanium_demangle::FloatLiteralImpl<double> const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::FloatLiteralImpl<long double> >((anonymous namespace)::itanium_demangle::FloatLiteralImpl<long double> const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::BracedExpr>((anonymous namespace)::itanium_demangle::BracedExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::BracedRangeExpr>((anonymous namespace)::itanium_demangle::BracedRangeExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::RequiresExpr>((anonymous namespace)::itanium_demangle::RequiresExpr const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ExprRequirement>((anonymous namespace)::itanium_demangle::ExprRequirement const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::TypeRequirement>((anonymous namespace)::itanium_demangle::TypeRequirement const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::NestedRequirement>((anonymous namespace)::itanium_demangle::NestedRequirement const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::ExplicitObjectParameter>((anonymous namespace)::itanium_demangle::ExplicitObjectParameter const*) Unexecuted instantiation: cxa_demangle.cpp:void (anonymous namespace)::DumpVisitor::operator()<(anonymous namespace)::itanium_demangle::PackIndexing>((anonymous namespace)::itanium_demangle::PackIndexing const*) |
265 | | |
266 | 0 | void operator()(const ForwardTemplateReference *Node) { |
267 | 0 | Depth += 2; |
268 | 0 | fprintf(stderr, "ForwardTemplateReference("); |
269 | 0 | if (Node->Ref && !Node->Printing) { |
270 | 0 | Node->Printing = true; |
271 | 0 | CtorArgPrinter{*this}(Node->Ref); |
272 | 0 | Node->Printing = false; |
273 | 0 | } else { |
274 | 0 | CtorArgPrinter{*this}(Node->Index); |
275 | 0 | } |
276 | 0 | fprintf(stderr, ")"); |
277 | 0 | Depth -= 2; |
278 | 0 | } |
279 | | }; |
280 | | } |
281 | | |
282 | 0 | void itanium_demangle::Node::dump() const { |
283 | 0 | DumpVisitor V; |
284 | 0 | visit(std::ref(V)); |
285 | 0 | V.newLine(); |
286 | 0 | } |
287 | | #endif |
288 | | |
289 | | namespace { |
290 | | class BumpPointerAllocator { |
291 | | struct BlockMeta { |
292 | | BlockMeta* Next; |
293 | | size_t Current; |
294 | | }; |
295 | | |
296 | | static constexpr size_t AllocSize = 4096; |
297 | | static constexpr size_t UsableAllocSize = AllocSize - sizeof(BlockMeta); |
298 | | |
299 | | alignas(long double) char InitialBuffer[AllocSize]; |
300 | | BlockMeta* BlockList = nullptr; |
301 | | |
302 | 23.5k | void grow() { |
303 | 23.5k | char* NewMeta = static_cast<char *>(std::malloc(AllocSize)); |
304 | 23.5k | if (NewMeta == nullptr) |
305 | 0 | std::terminate(); |
306 | 23.5k | BlockList = new (NewMeta) BlockMeta{BlockList, 0}; |
307 | 23.5k | } |
308 | | |
309 | 1 | void* allocateMassive(size_t NBytes) { |
310 | 1 | NBytes += sizeof(BlockMeta); |
311 | 1 | BlockMeta* NewMeta = reinterpret_cast<BlockMeta*>(std::malloc(NBytes)); |
312 | 1 | if (NewMeta == nullptr) |
313 | 0 | std::terminate(); |
314 | 1 | BlockList->Next = new (NewMeta) BlockMeta{BlockList->Next, 0}; |
315 | 1 | return static_cast<void*>(NewMeta + 1); |
316 | 1 | } |
317 | | |
318 | | public: |
319 | | BumpPointerAllocator() |
320 | 16 | : BlockList(new (InitialBuffer) BlockMeta{nullptr, 0}) {} |
321 | | |
322 | 2.92M | void* allocate(size_t N) { |
323 | 2.92M | N = (N + 15u) & ~15u; |
324 | 2.92M | if (N + BlockList->Current >= UsableAllocSize) { |
325 | 23.5k | if (N > UsableAllocSize) |
326 | 1 | return allocateMassive(N); |
327 | 23.5k | grow(); |
328 | 23.5k | } |
329 | 2.92M | BlockList->Current += N; |
330 | 2.92M | return static_cast<void*>(reinterpret_cast<char*>(BlockList + 1) + |
331 | 2.92M | BlockList->Current - N); |
332 | 2.92M | } |
333 | | |
334 | 16 | void reset() { |
335 | 23.6k | while (BlockList) { |
336 | 23.6k | BlockMeta* Tmp = BlockList; |
337 | 23.6k | BlockList = BlockList->Next; |
338 | 23.6k | if (reinterpret_cast<char*>(Tmp) != InitialBuffer) |
339 | 23.5k | std::free(Tmp); |
340 | 23.6k | } |
341 | 16 | BlockList = new (InitialBuffer) BlockMeta{nullptr, 0}; |
342 | 16 | } |
343 | | |
344 | 16 | ~BumpPointerAllocator() { reset(); } |
345 | | }; |
346 | | |
347 | | class DefaultAllocator { |
348 | | BumpPointerAllocator Alloc; |
349 | | |
350 | | public: |
351 | 0 | void reset() { Alloc.reset(); } |
352 | | |
353 | 2.87M | template<typename T, typename ...Args> T *makeNode(Args &&...args) { |
354 | 2.87M | return new (Alloc.allocate(sizeof(T))) |
355 | 2.87M | T(std::forward<Args>(args)...); |
356 | 2.87M | } Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [31], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [31], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [12], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [12], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [9], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [9], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [14], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [14], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [19], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [19], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [27], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [27], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::CtorVtableSpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::CtorVtableSpecialName, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [41], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [41], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [18], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [18], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [22], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [22], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [20], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [20], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [25], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [25], (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [22]>(char const (&) [22]) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Line | Count | Source | 353 | 48.7k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 48.7k | return new (Alloc.allocate(sizeof(T))) | 355 | 48.7k | T(std::forward<Args>(args)...); | 356 | 48.7k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ModuleName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ModuleName, (anonymous namespace)::itanium_demangle::ModuleName*&, (anonymous namespace)::itanium_demangle::Node*&, bool&>((anonymous namespace)::itanium_demangle::ModuleName*&, (anonymous namespace)::itanium_demangle::Node*&, bool&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [24], (anonymous namespace)::itanium_demangle::ModuleName*&>(char const (&) [24], (anonymous namespace)::itanium_demangle::ModuleName*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&&) Line | Count | Source | 353 | 55.4k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 55.4k | return new (Alloc.allocate(sizeof(T))) | 355 | 55.4k | T(std::forward<Args>(args)...); | 356 | 55.4k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ForwardTemplateReference* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ForwardTemplateReference, unsigned long&>(unsigned long&) Line | Count | Source | 353 | 26 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 26 | return new (Alloc.allocate(sizeof(T))) | 355 | 26 | T(std::forward<Args>(args)...); | 356 | 26 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [5]>(char const (&) [5]) Line | Count | Source | 353 | 209k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 209k | return new (Alloc.allocate(sizeof(T))) | 355 | 209k | T(std::forward<Args>(args)...); | 356 | 209k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::BinaryExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::BinaryExpr, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&) Line | Count | Source | 353 | 40 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 40 | return new (Alloc.allocate(sizeof(T))) | 355 | 40 | T(std::forward<Args>(args)...); | 356 | 40 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PrefixExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PrefixExpr, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PostfixExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PostfixExpr, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Line | Count | Source | 353 | 120 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 120 | return new (Alloc.allocate(sizeof(T))) | 355 | 120 | T(std::forward<Args>(args)...); | 356 | 120 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ArraySubscriptExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ArraySubscriptExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::MemberExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::MemberExpr, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NewExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NewExpr, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, bool&, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, bool&, bool&&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Line | Count | Source | 353 | 4 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 4 | return new (Alloc.allocate(sizeof(T))) | 355 | 4 | T(std::forward<Args>(args)...); | 356 | 4 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::DeleteExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::DeleteExpr, (anonymous namespace)::itanium_demangle::Node*&, bool&, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, bool&, bool&&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Line | Count | Source | 353 | 99 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 99 | return new (Alloc.allocate(sizeof(T))) | 355 | 99 | T(std::forward<Args>(args)...); | 356 | 99 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::CallExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::CallExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray, bool, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&&, bool&&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ConversionExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ConversionExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ConditionalExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ConditionalExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::CastExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::CastExpr, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::EnclosingExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::EnclosingExpr, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::IntegerLiteral* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::IntegerLiteral, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Line | Count | Source | 353 | 4 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 4 | return new (Alloc.allocate(sizeof(T))) | 355 | 4 | T(std::forward<Args>(args)...); | 356 | 4 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::BoolExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::BoolExpr, int>(int&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FloatLiteralImpl<float>* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FloatLiteralImpl<float>, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FloatLiteralImpl<double>* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FloatLiteralImpl<double>, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FloatLiteralImpl<long double>* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FloatLiteralImpl<long double>, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::StringLiteral* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::StringLiteral, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [8]>(char const (&) [8]) Line | Count | Source | 353 | 25.5k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 25.5k | return new (Alloc.allocate(sizeof(T))) | 355 | 25.5k | T(std::forward<Args>(args)...); | 356 | 25.5k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::UnnamedTypeName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::UnnamedTypeName, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SyntheticTemplateParamName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SyntheticTemplateParamName, (anonymous namespace)::itanium_demangle::TemplateParamKind&, unsigned int&>((anonymous namespace)::itanium_demangle::TemplateParamKind&, unsigned int&) Line | Count | Source | 353 | 2.49k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 2.49k | return new (Alloc.allocate(sizeof(T))) | 355 | 2.49k | T(std::forward<Args>(args)...); | 356 | 2.49k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TypeTemplateParamDecl* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TypeTemplateParamDecl, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 1.24k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.24k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.24k | T(std::forward<Args>(args)...); | 356 | 1.24k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ConstrainedTypeTemplateParamDecl* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ConstrainedTypeTemplateParamDecl, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NonTypeTemplateParamDecl* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NonTypeTemplateParamDecl, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TemplateTemplateParamDecl* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TemplateTemplateParamDecl, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TemplateParamPackDecl* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TemplateParamPackDecl, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ClosureTypeName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ClosureTypeName, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>((anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [16]>(char const (&) [16]) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::LambdaExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::LambdaExpr, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::EnumLiteral* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::EnumLiteral, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FunctionParam* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FunctionParam, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Line | Count | Source | 353 | 1.33k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.33k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.33k | T(std::forward<Args>(args)...); | 356 | 1.33k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FoldExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FoldExpr, bool&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>(bool&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 19.0k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 19.0k | return new (Alloc.allocate(sizeof(T))) | 355 | 19.0k | T(std::forward<Args>(args)...); | 356 | 19.0k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::BracedExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::BracedExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, bool>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, bool&&) Line | Count | Source | 353 | 33.8k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 33.8k | return new (Alloc.allocate(sizeof(T))) | 355 | 33.8k | T(std::forward<Args>(args)...); | 356 | 33.8k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::BracedRangeExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::BracedRangeExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 16.9k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 16.9k | return new (Alloc.allocate(sizeof(T))) | 355 | 16.9k | T(std::forward<Args>(args)...); | 356 | 16.9k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::InitListExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::InitListExpr, decltype(nullptr), (anonymous namespace)::itanium_demangle::NodeArray>(decltype(nullptr)&&, (anonymous namespace)::itanium_demangle::NodeArray&&) Line | Count | Source | 353 | 49 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 49 | return new (Alloc.allocate(sizeof(T))) | 355 | 49 | T(std::forward<Args>(args)...); | 356 | 49 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PointerToMemberConversionExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PointerToMemberConversionExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node::Prec&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node::Prec&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::EnclosingExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::EnclosingExpr, char const (&) [10], (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec>(char const (&) [10], (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node::Prec&&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ExprRequirement* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ExprRequirement, (anonymous namespace)::itanium_demangle::Node*&, bool&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, bool&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 170 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 170 | return new (Alloc.allocate(sizeof(T))) | 355 | 170 | T(std::forward<Args>(args)...); | 356 | 170 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TypeRequirement* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TypeRequirement, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 9.03k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 9.03k | return new (Alloc.allocate(sizeof(T))) | 355 | 9.03k | T(std::forward<Args>(args)...); | 356 | 9.03k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NestedRequirement* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NestedRequirement, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 2.98k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 2.98k | return new (Alloc.allocate(sizeof(T))) | 355 | 2.98k | T(std::forward<Args>(args)...); | 356 | 2.98k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::RequiresExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::RequiresExpr, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::NodeArray&&) Line | Count | Source | 353 | 6.17k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 6.17k | return new (Alloc.allocate(sizeof(T))) | 355 | 6.17k | T(std::forward<Args>(args)...); | 356 | 6.17k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SubobjectExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SubobjectExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::NodeArray, bool&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::NodeArray&&, bool&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ParameterPackExpansion* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ParameterPackExpansion, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 467 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 467 | return new (Alloc.allocate(sizeof(T))) | 355 | 467 | T(std::forward<Args>(args)...); | 356 | 467 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PackIndexing* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PackIndexing, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SizeofParamPackExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SizeofParamPackExpr, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::EnclosingExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::EnclosingExpr, char const (&) [11], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [11], (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 10.4k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 10.4k | return new (Alloc.allocate(sizeof(T))) | 355 | 10.4k | T(std::forward<Args>(args)...); | 356 | 10.4k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NodeArrayNode* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NodeArrayNode, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray&&) Line | Count | Source | 353 | 10.3k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 10.3k | return new (Alloc.allocate(sizeof(T))) | 355 | 10.3k | T(std::forward<Args>(args)...); | 356 | 10.3k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::InitListExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::InitListExpr, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&&) Line | Count | Source | 353 | 18.1k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 18.1k | return new (Alloc.allocate(sizeof(T))) | 355 | 18.1k | T(std::forward<Args>(args)...); | 356 | 18.1k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [6]>(char const (&) [6]) Line | Count | Source | 353 | 85.8k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 85.8k | return new (Alloc.allocate(sizeof(T))) | 355 | 85.8k | T(std::forward<Args>(args)...); | 356 | 85.8k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ThrowExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ThrowExpr, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::QualifiedName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::QualifiedName, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 1.25k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.25k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.25k | T(std::forward<Args>(args)...); | 356 | 1.25k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::DtorName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::DtorName, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ConversionOperatorType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ConversionOperatorType, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 12 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 12 | return new (Alloc.allocate(sizeof(T))) | 355 | 12 | T(std::forward<Args>(args)...); | 356 | 12 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::LiteralOperator* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::LiteralOperator, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::GlobalQualifiedName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::GlobalQualifiedName, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::EnclosingExpr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::EnclosingExpr, char const (&) [9], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [9], (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 3.21k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 3.21k | return new (Alloc.allocate(sizeof(T))) | 355 | 3.21k | T(std::forward<Args>(args)...); | 356 | 3.21k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [4]>(char const (&) [4]) Line | Count | Source | 353 | 35.5k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 35.5k | return new (Alloc.allocate(sizeof(T))) | 355 | 35.5k | T(std::forward<Args>(args)...); | 356 | 35.5k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialSubstitution* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialSubstitution, (anonymous namespace)::itanium_demangle::SpecialSubKind&>((anonymous namespace)::itanium_demangle::SpecialSubKind&) Line | Count | Source | 353 | 50 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 50 | return new (Alloc.allocate(sizeof(T))) | 355 | 50 | T(std::forward<Args>(args)...); | 356 | 50 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::AbiTagAttr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::AbiTagAttr, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::StructuredBindingName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::StructuredBindingName, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ExpandedSpecialSubstitution* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ExpandedSpecialSubstitution, (anonymous namespace)::itanium_demangle::SpecialSubstitution*>((anonymous namespace)::itanium_demangle::SpecialSubstitution*&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::CtorDtorName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::CtorDtorName, (anonymous namespace)::itanium_demangle::Node*&, bool, int&>((anonymous namespace)::itanium_demangle::Node*&, bool&&, int&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ModuleEntity* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ModuleEntity, (anonymous namespace)::itanium_demangle::ModuleName*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::ModuleName*&, (anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::MemberLikeFriendName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::MemberLikeFriendName, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 36 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 36 | return new (Alloc.allocate(sizeof(T))) | 355 | 36 | T(std::forward<Args>(args)...); | 356 | 36 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NestedName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NestedName, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 1.26k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.26k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.26k | T(std::forward<Args>(args)...); | 356 | 1.26k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [15]>(char const (&) [15]) Line | Count | Source | 353 | 41.4k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 41.4k | return new (Alloc.allocate(sizeof(T))) | 355 | 41.4k | T(std::forward<Args>(args)...); | 356 | 41.4k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::LocalName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::LocalName, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ParameterPack* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ParameterPack, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray&&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TemplateArgs* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TemplateArgs, (anonymous namespace)::itanium_demangle::NodeArray, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::NodeArray&&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 3.76k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 3.76k | return new (Alloc.allocate(sizeof(T))) | 355 | 3.76k | T(std::forward<Args>(args)...); | 356 | 3.76k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameWithTemplateArgs* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameWithTemplateArgs, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 3.76k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 3.76k | return new (Alloc.allocate(sizeof(T))) | 355 | 3.76k | T(std::forward<Args>(args)...); | 356 | 3.76k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TemplateArgumentPack* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TemplateArgumentPack, (anonymous namespace)::itanium_demangle::NodeArray&>((anonymous namespace)::itanium_demangle::NodeArray&) Line | Count | Source | 353 | 1.25k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.25k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.25k | T(std::forward<Args>(args)...); | 356 | 1.25k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TemplateParamQualifiedArg* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TemplateParamQualifiedArg, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::EnableIfAttr* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::EnableIfAttr, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray&&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ExplicitObjectParameter* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ExplicitObjectParameter, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FunctionEncoding* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FunctionEncoding, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Qualifiers&, (anonymous namespace)::itanium_demangle::FunctionRefQual&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Qualifiers&, (anonymous namespace)::itanium_demangle::FunctionRefQual&) Line | Count | Source | 353 | 9 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 9 | return new (Alloc.allocate(sizeof(T))) | 355 | 9 | T(std::forward<Args>(args)...); | 356 | 9 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::DotSuffix* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::DotSuffix, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&&) Line | Count | Source | 353 | 1 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1 | return new (Alloc.allocate(sizeof(T))) | 355 | 1 | T(std::forward<Args>(args)...); | 356 | 1 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::DotSuffix* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::DotSuffix, (anonymous namespace)::itanium_demangle::Node*&, char const (&) [13]>((anonymous namespace)::itanium_demangle::Node*&, char const (&) [13]) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::SpecialName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::SpecialName, char const (&) [34], (anonymous namespace)::itanium_demangle::Node*&>(char const (&) [34], (anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NoexceptSpec* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NoexceptSpec, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 3 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 3 | return new (Alloc.allocate(sizeof(T))) | 355 | 3 | T(std::forward<Args>(args)...); | 356 | 3 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::DynamicExceptionSpec* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::DynamicExceptionSpec, (anonymous namespace)::itanium_demangle::NodeArray>((anonymous namespace)::itanium_demangle::NodeArray&&) Line | Count | Source | 353 | 1 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1 | return new (Alloc.allocate(sizeof(T))) | 355 | 1 | T(std::forward<Args>(args)...); | 356 | 1 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::FunctionType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::FunctionType, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Qualifiers&, (anonymous namespace)::itanium_demangle::FunctionRefQual&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::NodeArray&, (anonymous namespace)::itanium_demangle::Qualifiers&, (anonymous namespace)::itanium_demangle::FunctionRefQual&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 6.21k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 6.21k | return new (Alloc.allocate(sizeof(T))) | 355 | 6.21k | T(std::forward<Args>(args)...); | 356 | 6.21k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ObjCProtoName* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ObjCProtoName, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Line | Count | Source | 353 | 1.29k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.29k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.29k | T(std::forward<Args>(args)...); | 356 | 1.29k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::VendorExtQualType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::VendorExtQualType, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 543 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 543 | return new (Alloc.allocate(sizeof(T))) | 355 | 543 | T(std::forward<Args>(args)...); | 356 | 543 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::QualType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::QualType, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Qualifiers&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Qualifiers&) Line | Count | Source | 353 | 362k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 362k | return new (Alloc.allocate(sizeof(T))) | 355 | 362k | T(std::forward<Args>(args)...); | 356 | 362k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [12]>(char const (&) [12]) Line | Count | Source | 353 | 199k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 199k | return new (Alloc.allocate(sizeof(T))) | 355 | 199k | T(std::forward<Args>(args)...); | 356 | 199k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [14]>(char const (&) [14]) Line | Count | Source | 353 | 57.0k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 57.0k | return new (Alloc.allocate(sizeof(T))) | 355 | 57.0k | T(std::forward<Args>(args)...); | 356 | 57.0k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [13]>(char const (&) [13]) Line | Count | Source | 353 | 33.7k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 33.7k | return new (Alloc.allocate(sizeof(T))) | 355 | 33.7k | T(std::forward<Args>(args)...); | 356 | 33.7k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [10]>(char const (&) [10]) Line | Count | Source | 353 | 2.45k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 2.45k | return new (Alloc.allocate(sizeof(T))) | 355 | 2.45k | T(std::forward<Args>(args)...); | 356 | 2.45k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [19]>(char const (&) [19]) Line | Count | Source | 353 | 12.1k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 12.1k | return new (Alloc.allocate(sizeof(T))) | 355 | 12.1k | T(std::forward<Args>(args)...); | 356 | 12.1k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [9]>(char const (&) [9]) Line | Count | Source | 353 | 370k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 370k | return new (Alloc.allocate(sizeof(T))) | 355 | 370k | T(std::forward<Args>(args)...); | 356 | 370k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [18]>(char const (&) [18]) Line | Count | Source | 353 | 87.5k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 87.5k | return new (Alloc.allocate(sizeof(T))) | 355 | 87.5k | T(std::forward<Args>(args)...); | 356 | 87.5k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [7]>(char const (&) [7]) Line | Count | Source | 353 | 6.54k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 6.54k | return new (Alloc.allocate(sizeof(T))) | 355 | 6.54k | T(std::forward<Args>(args)...); | 356 | 6.54k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [11]>(char const (&) [11]) Line | Count | Source | 353 | 921k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 921k | return new (Alloc.allocate(sizeof(T))) | 355 | 921k | T(std::forward<Args>(args)...); | 356 | 921k | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::TransformedType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::TransformedType, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::BinaryFPType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::BinaryFPType, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [21]>(char const (&) [21]) Line | Count | Source | 353 | 894 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 894 | return new (Alloc.allocate(sizeof(T))) | 355 | 894 | T(std::forward<Args>(args)...); | 356 | 894 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [27]>(char const (&) [27]) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [17]>(char const (&) [17]) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::NameType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::NameType, char const (&) [26]>(char const (&) [26]) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::BitIntType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::BitIntType, (anonymous namespace)::itanium_demangle::Node*&, bool&>((anonymous namespace)::itanium_demangle::Node*&, bool&) Line | Count | Source | 353 | 4 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 4 | return new (Alloc.allocate(sizeof(T))) | 355 | 4 | T(std::forward<Args>(args)...); | 356 | 4 | } |
Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PostfixQualifiedType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PostfixQualifiedType, (anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>((anonymous namespace)::itanium_demangle::Node*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&) Unexecuted instantiation: cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PixelVectorType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PixelVectorType, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::VectorType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::VectorType, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 1 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1 | return new (Alloc.allocate(sizeof(T))) | 355 | 1 | T(std::forward<Args>(args)...); | 356 | 1 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::VectorType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::VectorType, (anonymous namespace)::itanium_demangle::Node*&, decltype(nullptr)>((anonymous namespace)::itanium_demangle::Node*&, decltype(nullptr)&&) Line | Count | Source | 353 | 847 | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 847 | return new (Alloc.allocate(sizeof(T))) | 355 | 847 | T(std::forward<Args>(args)...); | 356 | 847 | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ArrayType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ArrayType, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 87.4k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 87.4k | return new (Alloc.allocate(sizeof(T))) | 355 | 87.4k | T(std::forward<Args>(args)...); | 356 | 87.4k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PointerToMemberType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PointerToMemberType, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 8.26k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 8.26k | return new (Alloc.allocate(sizeof(T))) | 355 | 8.26k | T(std::forward<Args>(args)...); | 356 | 8.26k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ElaboratedTypeSpefType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ElaboratedTypeSpefType, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, (anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 2.41k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 2.41k | return new (Alloc.allocate(sizeof(T))) | 355 | 2.41k | T(std::forward<Args>(args)...); | 356 | 2.41k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PointerType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PointerType, (anonymous namespace)::itanium_demangle::Node*&>((anonymous namespace)::itanium_demangle::Node*&) Line | Count | Source | 353 | 9.18k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 9.18k | return new (Alloc.allocate(sizeof(T))) | 355 | 9.18k | T(std::forward<Args>(args)...); | 356 | 9.18k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::ReferenceType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::ReferenceType, (anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::ReferenceKind>((anonymous namespace)::itanium_demangle::Node*&, (anonymous namespace)::itanium_demangle::ReferenceKind&&) Line | Count | Source | 353 | 47.7k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 47.7k | return new (Alloc.allocate(sizeof(T))) | 355 | 47.7k | T(std::forward<Args>(args)...); | 356 | 47.7k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PostfixQualifiedType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PostfixQualifiedType, (anonymous namespace)::itanium_demangle::Node*&, char const (&) [9]>((anonymous namespace)::itanium_demangle::Node*&, char const (&) [9]) Line | Count | Source | 353 | 1.65k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.65k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.65k | T(std::forward<Args>(args)...); | 356 | 1.65k | } |
cxa_demangle.cpp:(anonymous namespace)::itanium_demangle::PostfixQualifiedType* (anonymous namespace)::DefaultAllocator::makeNode<(anonymous namespace)::itanium_demangle::PostfixQualifiedType, (anonymous namespace)::itanium_demangle::Node*&, char const (&) [11]>((anonymous namespace)::itanium_demangle::Node*&, char const (&) [11]) Line | Count | Source | 353 | 1.08k | template<typename T, typename ...Args> T *makeNode(Args &&...args) { | 354 | 1.08k | return new (Alloc.allocate(sizeof(T))) | 355 | 1.08k | T(std::forward<Args>(args)...); | 356 | 1.08k | } |
|
357 | | |
358 | 53.1k | void *allocateNodeArray(size_t sz) { |
359 | 53.1k | return Alloc.allocate(sizeof(Node *) * sz); |
360 | 53.1k | } |
361 | | }; |
362 | | } // unnamed namespace |
363 | | |
364 | | //===----------------------------------------------------------------------===// |
365 | | // Code beyond this point should not be synchronized with LLVM. |
366 | | //===----------------------------------------------------------------------===// |
367 | | |
368 | | using Demangler = itanium_demangle::ManglingParser<DefaultAllocator>; |
369 | | |
370 | | namespace { |
371 | | enum : int { |
372 | | demangle_invalid_args = -3, |
373 | | demangle_invalid_mangled_name = -2, |
374 | | demangle_memory_alloc_failure = -1, |
375 | | demangle_success = 0, |
376 | | }; |
377 | | } |
378 | | |
379 | | namespace __cxxabiv1 { |
380 | | extern "C" _LIBCXXABI_FUNC_VIS char * |
381 | 16 | __cxa_demangle(const char *MangledName, char *Buf, size_t *N, int *Status) { |
382 | 16 | if (MangledName == nullptr || (Buf != nullptr && N == nullptr)) { |
383 | 0 | if (Status) |
384 | 0 | *Status = demangle_invalid_args; |
385 | 0 | return nullptr; |
386 | 0 | } |
387 | | |
388 | 16 | int InternalStatus = demangle_success; |
389 | 16 | Demangler Parser(MangledName, MangledName + std::strlen(MangledName)); |
390 | 16 | Node *AST = Parser.parse(); |
391 | | |
392 | 16 | if (AST == nullptr) |
393 | 15 | InternalStatus = demangle_invalid_mangled_name; |
394 | 1 | else { |
395 | 1 | OutputBuffer O(Buf, N); |
396 | 1 | DEMANGLE_ASSERT(Parser.ForwardTemplateRefs.empty(), ""); |
397 | 1 | AST->print(O); |
398 | 1 | O += '\0'; |
399 | 1 | if (N != nullptr) |
400 | 0 | *N = O.getCurrentPosition(); |
401 | 1 | Buf = O.getBuffer(); |
402 | 1 | } |
403 | | |
404 | 16 | if (Status) |
405 | 0 | *Status = InternalStatus; |
406 | 16 | return InternalStatus == demangle_success ? Buf : nullptr; |
407 | 16 | } |
408 | | } // __cxxabiv1 |