struct ForwardTemplateReference
Declaration
struct ForwardTemplateReference : public Node { /* full declaration omitted */ };
Description
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 \c 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\c ForwardTemplateReference node that is resolved after we parse the template arguments.
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1406
Inherits from: Node
Member Variables
- public size_t Index
- public llvm::itanium_demangle::Node* Ref = nullptr
- public bool Printing = false
Inherited from Node:
Method Overview
- public ForwardTemplateReference(size_t Index_)
- public const llvm::itanium_demangle::Node * getSyntaxNode(llvm::itanium_demangle::OutputBuffer & OB) const
- public bool hasArraySlow(llvm::itanium_demangle::OutputBuffer & OB) const
- public bool hasFunctionSlow(llvm::itanium_demangle::OutputBuffer & OB) const
- public bool hasRHSComponentSlow(llvm::itanium_demangle::OutputBuffer & OB) const
- public template <typename Fn>void match(Fn F) const
- public void printLeft(llvm::itanium_demangle::OutputBuffer & OB) const
- public void printRight(llvm::itanium_demangle::OutputBuffer & OB) const
Inherited from Node:
- public dump
- public getBaseName
- public getKind
- public getPrecedence
- public getSyntaxNode
- public hasArray
- public hasArraySlow
- public hasFunction
- public hasFunctionSlow
- public hasRHSComponent
- public hasRHSComponentSlow
- public print
- public printAsOperand
- public printLeft
- public printRight
- public visit
Methods
¶ForwardTemplateReference(size_t Index_)
ForwardTemplateReference(size_t Index_)
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1416
Parameters
- size_t Index_
¶const llvm::itanium_demangle::Node* getSyntaxNode(
llvm::itanium_demangle::OutputBuffer& OB)
const
const llvm::itanium_demangle::Node* getSyntaxNode(
llvm::itanium_demangle::OutputBuffer& OB)
const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1444
Parameters
¶bool hasArraySlow(
llvm::itanium_demangle::OutputBuffer& OB)
const
bool hasArraySlow(
llvm::itanium_demangle::OutputBuffer& OB)
const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1432
Parameters
¶bool hasFunctionSlow(
llvm::itanium_demangle::OutputBuffer& OB)
const
bool hasFunctionSlow(
llvm::itanium_demangle::OutputBuffer& OB)
const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1438
Parameters
¶bool hasRHSComponentSlow(
llvm::itanium_demangle::OutputBuffer& OB)
const
bool hasRHSComponentSlow(
llvm::itanium_demangle::OutputBuffer& OB)
const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1426
Parameters
¶template <typename Fn>
void match(Fn F) const
template <typename Fn>
void match(Fn F) const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1424
Templates
- Fn
Parameters
- Fn F
¶void printLeft(
llvm::itanium_demangle::OutputBuffer& OB)
const
void printLeft(
llvm::itanium_demangle::OutputBuffer& OB)
const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1451
Parameters
¶void printRight(
llvm::itanium_demangle::OutputBuffer& OB)
const
void printRight(
llvm::itanium_demangle::OutputBuffer& OB)
const
Declared at: llvm/include/llvm/Demangle/ItaniumDemangle.h:1457