|
LLVM 24.0.0git
|
A forward-reference to a template argument that was not known at the point where the template parameter name was parsed in a mangling. More...
#include "llvm/Demangle/ItaniumDemangle.h"
Public Attributes | |
| size_t | Index |
| Node * | Ref = nullptr |
| bool | Printing = false |
Additional Inherited Members | |
| Public Types inherited from Node | |
| enum | Kind : uint8_t |
| enum class | Cache : uint8_t { Yes , No , Unknown } |
| Three-way bool to track a cached value. More... | |
| enum class | Prec : uint8_t { Primary , Postfix , Unary , Cast , PtrMem , Multiplicative , Additive , Shift , Spaceship , Relational , Equality , And , Xor , Ior , AndIf , OrIf , Conditional , Assign , Comma , Default } |
| Operator precedence for expression nodes. More... | |
| Protected Attributes inherited from Node | |
| Cache | RHSComponentCache: 2 |
| Tracks if this node has a component on its right side, in which case we need to call printRight. | |
| Cache | ArrayCache: 2 |
| Track if this node is a (possibly qualified) array type. | |
| Cache | FunctionCache: 2 |
| Track if this node is a (possibly qualified) function type. | |
A forward-reference to a template argument that was not known at the point where the template parameter name was parsed in a mangling.
This is created when demangling the name of a specialization of a conversion function template:
When demangling a specialization of the conversion function template, we encounter the name of the template (including the T) before we reach the template argument list, so we cannot substitute the parameter name for the corresponding argument while parsing. Instead, we create a ForwardTemplateReference node that is resolved after we parse the template arguments.
Definition at line 1601 of file ItaniumDemangle.h.
|
inline |
Definition at line 1611 of file ItaniumDemangle.h.
References Index, Node::Node(), and Node::Unknown.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1639 of file ItaniumDemangle.h.
References Node::Node(), Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1627 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1633 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1621 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
delete |
References F.
|
inlineoverridevirtual |
Implements Node.
Definition at line 1646 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1652 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
| size_t ForwardTemplateReference::Index |
Definition at line 1602 of file ItaniumDemangle.h.
Referenced by ForwardTemplateReference().
|
mutable |
Definition at line 1609 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().
| Node* ForwardTemplateReference::Ref = nullptr |
Definition at line 1603 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().