LLVM 20.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 : unsigned char |
enum class | Cache : unsigned char { Yes , No , Unknown } |
Three-way bool to track a cached value. More... | |
enum class | Prec { 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 1563 of file ItaniumDemangle.h.
|
inline |
Definition at line 1573 of file ItaniumDemangle.h.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1601 of file ItaniumDemangle.h.
References Node::getSyntaxNode(), Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1589 of file ItaniumDemangle.h.
References Node::hasArray(), Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1595 of file ItaniumDemangle.h.
References Node::hasFunction(), Printing, and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1583 of file ItaniumDemangle.h.
References Node::hasRHSComponent(), Printing, and Ref.
|
delete |
|
inlineoverridevirtual |
Implements Node.
Definition at line 1608 of file ItaniumDemangle.h.
References Printing, Node::printLeft(), and Ref.
|
inlineoverridevirtual |
Reimplemented from Node.
Definition at line 1614 of file ItaniumDemangle.h.
References Printing, Node::printRight(), and Ref.
size_t ForwardTemplateReference::Index |
Definition at line 1564 of file ItaniumDemangle.h.
|
mutable |
Definition at line 1571 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().
Node* ForwardTemplateReference::Ref = nullptr |
Definition at line 1565 of file ItaniumDemangle.h.
Referenced by getSyntaxNode(), hasArraySlow(), hasFunctionSlow(), hasRHSComponentSlow(), printLeft(), and printRight().