|
LLVM 23.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 1600 of file ItaniumDemangle.h.
|
inline |
Definition at line 1610 of file ItaniumDemangle.h.
References Index, Node::Node(), and Node::Unknown.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1638 of file ItaniumDemangle.h.
References Node::Node(), Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1626 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1632 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1620 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
delete |
References F.
|
inlineoverridevirtual |
Implements Node.
Definition at line 1645 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1651 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
| size_t ForwardTemplateReference::Index |
Definition at line 1601 of file ItaniumDemangle.h.
Referenced by ForwardTemplateReference().
|
mutable |
Definition at line 1608 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().
| Node* ForwardTemplateReference::Ref = nullptr |
Definition at line 1602 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().