LLVM
15.0.0git
|
#include "llvm/Demangle/ItaniumDemangle.h"
Inherited by AbiTagAttr, ArraySubscriptExpr, ArrayType, BinaryExpr, BinaryFPType, BitIntType, BoolExpr, BracedExpr, BracedRangeExpr, CallExpr, CastExpr, ClosureTypeName, ConditionalExpr, ConversionExpr, ConversionOperatorType, CtorDtorName, CtorVtableSpecialName, DeleteExpr, DotSuffix, DtorName, DynamicExceptionSpec, ElaboratedTypeSpefType, EnableIfAttr, EnclosingExpr, EnumLiteral, ExpandedSpecialSubstitution, FloatLiteralImpl< Float >, FoldExpr, ForwardTemplateReference, FunctionEncoding, FunctionParam, FunctionType, GlobalQualifiedName, InitListExpr, IntegerLiteral, LambdaExpr, LiteralOperator, LocalName, MemberExpr, ModuleEntity, ModuleName, NameType, NameWithTemplateArgs, NestedName, NewExpr, NodeArrayNode, NoexceptSpec, NonTypeTemplateParamDecl, ObjCProtoName, ParameterPack, ParameterPackExpansion, PixelVectorType, PointerToMemberConversionExpr, PointerToMemberType, PointerType, PostfixExpr, PostfixQualifiedType, PrefixExpr, QualifiedName, QualType, ReferenceType, SizeofParamPackExpr, SpecialName, StringLiteral, StructuredBindingName, SubobjectExpr, SyntheticTemplateParamName, TemplateArgs, TemplateArgumentPack, TemplateParamPackDecl, TemplateTemplateParamDecl, ThrowExpr, TypeTemplateParamDecl, UnnamedTypeName, VectorType, and VendorExtQualType.
Public Types | |
enum | Kind : unsigned char |
enum | Cache : unsigned char { Cache::Yes, Cache::No, Cache::Unknown } |
Three-way bool to track a cached value. More... | |
enum | Prec { Prec::Primary, Prec::Postfix, Prec::Unary, Prec::Cast, Prec::PtrMem, Prec::Multiplicative, Prec::Additive, Prec::Shift, Prec::Spaceship, Prec::Relational, Prec::Equality, Prec::And, Prec::Xor, Prec::Ior, Prec::AndIf, Prec::OrIf, Prec::Conditional, Prec::Assign, Prec::Comma, Prec::Default } |
Operator precedence for expression nodes. More... | |
Public Attributes | |
Cache | RHSComponentCache: 2 |
Tracks if this node has a component on its right side, in which case we need to call printRight. More... | |
Cache | ArrayCache: 2 |
Track if this node is a (possibly qualified) array type. More... | |
Cache | FunctionCache: 2 |
Track if this node is a (possibly qualified) function type. More... | |
Definition at line 155 of file ItaniumDemangle.h.
|
strong |
Three-way bool to track a cached value.
Unknown is possible if this node has an unexpanded parameter pack below it that may affect this cache.
Enumerator | |
---|---|
Yes | |
No | |
Unknown |
Definition at line 164 of file ItaniumDemangle.h.
enum Node::Kind : unsigned char |
Definition at line 157 of file ItaniumDemangle.h.
|
strong |
Operator precedence for expression nodes.
Used to determine required parens in expression emission.
Enumerator | |
---|---|
Primary | |
Postfix | |
Unary | |
Cast | |
PtrMem | |
Multiplicative | |
Additive | |
Shift | |
Spaceship | |
Relational | |
Equality | |
And | |
Xor | |
Ior | |
AndIf | |
OrIf | |
Conditional | |
Assign | |
Comma | |
Default |
Definition at line 168 of file ItaniumDemangle.h.
|
inline |
Definition at line 211 of file ItaniumDemangle.h.
|
inline |
Definition at line 216 of file ItaniumDemangle.h.
|
virtualdefault |
DEMANGLE_DUMP_METHOD void Node::dump | ( | ) | const |
Referenced by llvm::SDValue::dump().
|
inlinevirtual |
Reimplemented in SpecialSubstitution, ExpandedSpecialSubstitution, GlobalQualifiedName, NameWithTemplateArgs, QualifiedName, ModuleEntity, NestedName, and NameType.
Definition at line 288 of file ItaniumDemangle.h.
Referenced by NestedName::getBaseName(), ModuleEntity::getBaseName(), and NameWithTemplateArgs::getBaseName().
|
inline |
Definition at line 248 of file ItaniumDemangle.h.
Referenced by ObjCProtoName::isObjCObject(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseCtorDtorName(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseNestedName(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseTemplateParam(), BracedExpr::printLeft(), and BracedRangeExpr::printLeft().
|
inline |
Definition at line 250 of file ItaniumDemangle.h.
Referenced by BinaryExpr::match(), ArraySubscriptExpr::match(), PostfixExpr::match(), ConditionalExpr::match(), MemberExpr::match(), EnclosingExpr::match(), CastExpr::match(), CallExpr::match(), NewExpr::match(), DeleteExpr::match(), PrefixExpr::match(), ConversionExpr::match(), PointerToMemberConversionExpr::match(), printAsOperand(), BinaryExpr::printLeft(), ArraySubscriptExpr::printLeft(), PostfixExpr::printLeft(), ConditionalExpr::printLeft(), MemberExpr::printLeft(), and PrefixExpr::printLeft().
|
inlinevirtual |
Reimplemented in ForwardTemplateReference, and ParameterPack.
Definition at line 258 of file ItaniumDemangle.h.
Referenced by ForwardTemplateReference::getSyntaxNode().
|
inline |
Definition at line 236 of file ItaniumDemangle.h.
References ArrayCache, hasArraySlow(), llvm::X86II::OB, Unknown, and Yes.
Referenced by QualType::hasArraySlow(), ForwardTemplateReference::hasArraySlow(), PointerToMemberType::printLeft(), and PointerToMemberType::printRight().
|
inlinevirtual |
Reimplemented in ForwardTemplateReference, ParameterPack, QualType, and ArrayType.
Definition at line 253 of file ItaniumDemangle.h.
Referenced by hasArray().
|
inline |
Definition at line 242 of file ItaniumDemangle.h.
References FunctionCache, hasFunctionSlow(), llvm::X86II::OB, Unknown, and Yes.
Referenced by QualType::hasFunctionSlow(), ForwardTemplateReference::hasFunctionSlow(), PointerToMemberType::printLeft(), and PointerToMemberType::printRight().
|
inlinevirtual |
Reimplemented in ForwardTemplateReference, ParameterPack, QualType, FunctionEncoding, and FunctionType.
Definition at line 254 of file ItaniumDemangle.h.
Referenced by hasFunction().
|
inline |
Definition at line 230 of file ItaniumDemangle.h.
References hasRHSComponentSlow(), llvm::X86II::OB, RHSComponentCache, Unknown, and Yes.
Referenced by QualType::hasRHSComponentSlow(), ReferenceType::hasRHSComponentSlow(), PointerToMemberType::hasRHSComponentSlow(), and ForwardTemplateReference::hasRHSComponentSlow().
|
inlinevirtual |
Reimplemented in ForwardTemplateReference, ParameterPack, PointerToMemberType, ReferenceType, PointerType, QualType, FunctionEncoding, FunctionType, and ArrayType.
Definition at line 252 of file ItaniumDemangle.h.
Referenced by hasRHSComponent().
|
inline |
Definition at line 273 of file ItaniumDemangle.h.
References No, llvm::X86II::OB, printLeft(), printRight(), and RHSComponentCache.
Referenced by printAsOperand(), ElaboratedTypeSpefType::printLeft(), ObjCProtoName::printLeft(), SpecialName::printLeft(), CtorVtableSpecialName::printLeft(), NestedName::printLeft(), ModuleName::printLeft(), ModuleEntity::printLeft(), LocalName::printLeft(), NameWithTemplateArgs::printLeft(), SubobjectExpr::printLeft(), EnclosingExpr::printLeft(), PointerToMemberConversionExpr::printLeft(), InitListExpr::printLeft(), BracedExpr::printLeft(), BracedRangeExpr::printLeft(), FoldExpr::printLeft(), EnumLiteral::printLeft(), and FunctionType::printRight().
|
inline |
Definition at line 262 of file ItaniumDemangle.h.
References getPrecedence(), llvm::X86II::OB, P, and print().
Referenced by llvm::DOTGraphTraits< DOTFuncInfo * >::getSimpleNodeLabel(), llvm::operator<<(), ArraySubscriptExpr::printLeft(), PostfixExpr::printLeft(), PrefixExpr::printLeft(), FoldExpr::printLeft(), and NodeArray::printWithComma().
|
pure virtual |
Implemented in FloatLiteralImpl< Float >, IntegerLiteral, EnumLiteral, LambdaExpr, StringLiteral, BoolExpr, ThrowExpr, FoldExpr, BracedRangeExpr, BracedExpr, InitListExpr, PointerToMemberConversionExpr, ConversionExpr, FunctionParam, PrefixExpr, DeleteExpr, NewExpr, CallExpr, SizeofParamPackExpr, CastExpr, EnclosingExpr, SubobjectExpr, MemberExpr, ConditionalExpr, PostfixExpr, ArraySubscriptExpr, BinaryExpr, StructuredBindingName, ClosureTypeName, UnnamedTypeName, DtorName, CtorDtorName, SpecialSubstitution, GlobalQualifiedName, NameWithTemplateArgs, ForwardTemplateReference, TemplateArgs, ParameterPackExpansion, TemplateArgumentPack, ParameterPack, TemplateParamPackDecl, TemplateTemplateParamDecl, NonTypeTemplateParamDecl, TypeTemplateParamDecl, SyntheticTemplateParamName, BinaryFPType, PixelVectorType, VectorType, QualifiedName, LocalName, ModuleEntity, ModuleName, NestedName, CtorVtableSpecialName, SpecialName, LiteralOperator, FunctionEncoding, DynamicExceptionSpec, NoexceptSpec, FunctionType, ArrayType, PointerToMemberType, ReferenceType, PointerType, ObjCProtoName, EnableIfAttr, AbiTagAttr, ElaboratedTypeSpefType, BitIntType, NameType, PostfixQualifiedType, ConversionOperatorType, QualType, VendorExtQualType, DotSuffix, and NodeArrayNode.
Referenced by print(), QualType::printLeft(), AbiTagAttr::printLeft(), PointerToMemberType::printLeft(), ForwardTemplateReference::printLeft(), and CastExpr::printLeft().
|
inlinevirtual |
Reimplemented in ForwardTemplateReference, ParameterPack, TemplateParamPackDecl, TemplateTemplateParamDecl, NonTypeTemplateParamDecl, TypeTemplateParamDecl, FunctionEncoding, FunctionType, ArrayType, PointerToMemberType, ReferenceType, PointerType, and QualType.
Definition at line 286 of file ItaniumDemangle.h.
Referenced by print(), QualType::printRight(), PointerToMemberType::printRight(), and ForwardTemplateReference::printRight().
void Node::visit | ( | Fn | F | ) | const |
Visit the most-derived object corresponding to this object.
Visit the node.
Calls F(P)
, where P
is the node cast to the appropriate derived class.
Definition at line 2349 of file ItaniumDemangle.h.
References assert().
Cache Node::ArrayCache |
Track if this node is a (possibly qualified) array type.
This can affect how we format the output string.
Definition at line 204 of file ItaniumDemangle.h.
Referenced by hasArray(), and ParameterPack::ParameterPack().
Cache Node::FunctionCache |
Track if this node is a (possibly qualified) function type.
This can affect how we format the output string.
Definition at line 208 of file ItaniumDemangle.h.
Referenced by hasFunction(), and ParameterPack::ParameterPack().
Cache Node::RHSComponentCache |
Tracks if this node has a component on its right side, in which case we need to call printRight.
Definition at line 200 of file ItaniumDemangle.h.
Referenced by hasRHSComponent(), ParameterPack::ParameterPack(), and print().