|
LLVM 22.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 1579 of file ItaniumDemangle.h.
|
inline |
Definition at line 1589 of file ItaniumDemangle.h.
References Index, Node::Node(), and Node::Unknown.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1617 of file ItaniumDemangle.h.
References Node::Node(), Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1605 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1611 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1599 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
delete |
References F.
|
inlineoverridevirtual |
Implements Node.
Definition at line 1624 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1630 of file ItaniumDemangle.h.
References Node::OutputBuffer, Printing, and Ref.
| size_t ForwardTemplateReference::Index |
Definition at line 1580 of file ItaniumDemangle.h.
Referenced by ForwardTemplateReference().
|
mutable |
Definition at line 1587 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().
| Node* ForwardTemplateReference::Ref = nullptr |
Definition at line 1581 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().