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().