reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
250 struct NodeArrayNode : Node { 261 class DotSuffix final : public Node { 279 class VendorExtQualType final : public Node { 313 class QualType final : public Node { 353 class ConversionOperatorType final : public Node { 368 class PostfixQualifiedType final : public Node { 384 class NameType final : public Node { 398 class ElaboratedTypeSpefType : public Node { 414 struct AbiTagAttr : Node { 433 class EnableIfAttr : public Node { 448 class ObjCProtoName : public Node { 473 class PointerType final : public Node { 521 class ReferenceType : public Node { 578 class PointerToMemberType final : public Node { 646 class ArrayType final : public Node { 677 class FunctionType final : public Node { 737 class NoexceptSpec : public Node { 751 class DynamicExceptionSpec : public Node { 766 class FunctionEncoding final : public Node { 831 class LiteralOperator : public Node { 846 class SpecialName final : public Node { 862 class CtorVtableSpecialName final : public Node { 881 struct NestedName : Node { 899 struct LocalName : Node { 915 class QualifiedName final : public Node { 935 class VectorType final : public Node { 957 class PixelVectorType final : public Node { 982 class SyntheticTemplateParamName final : public Node { 1010 class TypeTemplateParamDecl final : public Node { 1029 class NonTypeTemplateParamDecl final : public Node { 1053 class TemplateTemplateParamDecl final : public Node { 1076 class TemplateParamPackDecl final : public Node { 1103 class ParameterPack final : public Node { 1173 class TemplateArgumentPack final : public Node { 1190 class ParameterPackExpansion final : public Node { 1234 class TemplateArgs final : public Node { 1271 struct ForwardTemplateReference : Node { 1330 struct NameWithTemplateArgs : Node { 1348 class GlobalQualifiedName final : public Node { 1365 struct StdQualifiedName : Node { 1389 class ExpandedSpecialSubstitution final : public Node { 1441 class SpecialSubstitution final : public Node { 1492 class CtorDtorName final : public Node { 1511 class DtorName : public Node { 1525 class UnnamedTypeName : public Node { 1540 class ClosureTypeName : public Node { 1574 class StructuredBindingName : public Node { 1591 class BinaryExpr : public Node { 1622 class ArraySubscriptExpr : public Node { 1641 class PostfixExpr : public Node { 1659 class ConditionalExpr : public Node { 1681 class MemberExpr : public Node { 1699 class EnclosingExpr : public Node { 1718 class CastExpr : public Node { 1740 class SizeofParamPackExpr : public Node { 1757 class CallExpr : public Node { 1775 class NewExpr : public Node { 1814 class DeleteExpr : public Node { 1835 class PrefixExpr : public Node { 1853 class FunctionParam : public Node { 1867 class ConversionExpr : public Node { 1886 class InitListExpr : public Node { 1904 class BracedExpr : public Node { 1929 class BracedRangeExpr : public Node { 1951 class FoldExpr : public Node { 2006 class ThrowExpr : public Node { 2021 class UUIDOfExpr : public Node { 2035 class BoolExpr : public Node { 2048 class StringLiteral : public Node { 2063 class LambdaExpr : public Node { 2079 class IntegerCastExpr : public Node { 2098 class IntegerLiteral : public Node { 2140 template <class Float> class FloatLiteralImpl : public Node {
39 static inline T* getEmptyKey() { 41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable; 45 static inline T* getTombstoneKey() { 47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable; 51 static unsigned getHashValue(const T *PtrVal) { 56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; } 56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }include/llvm/Demangle/ItaniumDemangle.h
183 virtual const Node *getSyntaxNode(OutputStream &) const { 213 Node **Elements; 218 NodeArray(Node **Elements_, size_t NumElements_) 224 Node **begin() const { return Elements; } 225 Node **end() const { return Elements + NumElements; } 227 Node *operator[](size_t Idx) const { return Elements[Idx]; } 250 struct NodeArrayNode : Node { 261 class DotSuffix final : public Node { 262 const Node *Prefix; 266 DotSuffix(const Node *Prefix_, StringView Suffix_) 279 class VendorExtQualType final : public Node { 280 const Node *Ty; 284 VendorExtQualType(const Node *Ty_, StringView Ext_) 313 class QualType final : public Node { 316 const Node *Child; 328 QualType(const Node *Child_, Qualifiers Quals_) 353 class ConversionOperatorType final : public Node { 354 const Node *Ty; 357 ConversionOperatorType(const Node *Ty_) 368 class PostfixQualifiedType final : public Node { 369 const Node *Ty; 373 PostfixQualifiedType(Node *Ty_, StringView Postfix_) 384 class NameType final : public Node { 398 class ElaboratedTypeSpefType : public Node { 400 Node *Child; 402 ElaboratedTypeSpefType(StringView Kind_, Node *Child_) 414 struct AbiTagAttr : Node { 415 Node *Base; 418 AbiTagAttr(Node* Base_, StringView Tag_) 433 class EnableIfAttr : public Node { 448 class ObjCProtoName : public Node { 449 const Node *Ty; 455 ObjCProtoName(const Node *Ty_, StringView Protocol_) 473 class PointerType final : public Node { 474 const Node *Pointee; 477 PointerType(const Node *Pointee_) 521 class ReferenceType : public Node { 522 const Node *Pointee; 530 std::pair<ReferenceKind, const Node *> collapse(OutputStream &S) const { 533 const Node *SN = SoFar.second->getSyntaxNode(S); 544 ReferenceType(const Node *Pointee_, ReferenceKind RK_) 558 std::pair<ReferenceKind, const Node *> Collapsed = collapse(s); 571 std::pair<ReferenceKind, const Node *> Collapsed = collapse(s); 578 class PointerToMemberType final : public Node { 579 const Node *ClassType; 580 const Node *MemberType; 583 PointerToMemberType(const Node *ClassType_, const Node *MemberType_) 583 PointerToMemberType(const Node *ClassType_, const Node *MemberType_) 626 /* implicit */ NodeOrString(Node *N) 640 const Node *asNode() const { 646 class ArrayType final : public Node { 647 const Node *Base; 651 ArrayType(const Node *Base_, NodeOrString Dimension_) 677 class FunctionType final : public Node { 678 const Node *Ret; 682 const Node *ExceptionSpec; 685 FunctionType(const Node *Ret_, NodeArray Params_, Qualifiers CVQuals_, 686 FunctionRefQual RefQual_, const Node *ExceptionSpec_) 737 class NoexceptSpec : public Node { 738 const Node *E; 740 NoexceptSpec(const Node *E_) : Node(KNoexceptSpec), E(E_) {} 751 class DynamicExceptionSpec : public Node { 766 class FunctionEncoding final : public Node { 767 const Node *Ret; 768 const Node *Name; 770 const Node *Attrs; 775 FunctionEncoding(const Node *Ret_, const Node *Name_, NodeArray Params_, 775 FunctionEncoding(const Node *Ret_, const Node *Name_, NodeArray Params_, 776 const Node *Attrs_, Qualifiers CVQuals_, 791 const Node *getReturnType() const { return Ret; } 796 const Node *getName() const { return Name; } 831 class LiteralOperator : public Node { 832 const Node *OpName; 835 LiteralOperator(const Node *OpName_) 846 class SpecialName final : public Node { 848 const Node *Child; 851 SpecialName(StringView Special_, const Node *Child_) 862 class CtorVtableSpecialName final : public Node { 863 const Node *FirstType; 864 const Node *SecondType; 867 CtorVtableSpecialName(const Node *FirstType_, const Node *SecondType_) 867 CtorVtableSpecialName(const Node *FirstType_, const Node *SecondType_) 881 struct NestedName : Node { 882 Node *Qual; 883 Node *Name; 885 NestedName(Node *Qual_, Node *Name_) 885 NestedName(Node *Qual_, Node *Name_) 899 struct LocalName : Node { 900 Node *Encoding; 901 Node *Entity; 903 LocalName(Node *Encoding_, Node *Entity_) 903 LocalName(Node *Encoding_, Node *Entity_) 915 class QualifiedName final : public Node { 917 const Node *Qualifier; 918 const Node *Name; 921 QualifiedName(const Node *Qualifier_, const Node *Name_) 921 QualifiedName(const Node *Qualifier_, const Node *Name_) 935 class VectorType final : public Node { 936 const Node *BaseType; 940 VectorType(const Node *BaseType_, NodeOrString Dimension_) 957 class PixelVectorType final : public Node { 982 class SyntheticTemplateParamName final : public Node { 1010 class TypeTemplateParamDecl final : public Node { 1011 Node *Name; 1014 TypeTemplateParamDecl(Node *Name_) 1029 class NonTypeTemplateParamDecl final : public Node { 1030 Node *Name; 1031 Node *Type; 1034 NonTypeTemplateParamDecl(Node *Name_, Node *Type_) 1034 NonTypeTemplateParamDecl(Node *Name_, Node *Type_) 1053 class TemplateTemplateParamDecl final : public Node { 1054 Node *Name; 1058 TemplateTemplateParamDecl(Node *Name_, NodeArray Params_) 1076 class TemplateParamPackDecl final : public Node { 1077 Node *Param; 1080 TemplateParamPackDecl(Node *Param_) 1103 class ParameterPack final : public Node { 1148 const Node *getSyntaxNode(OutputStream &S) const override { 1173 class TemplateArgumentPack final : public Node { 1190 class ParameterPackExpansion final : public Node { 1191 const Node *Child; 1194 ParameterPackExpansion(const Node *Child_) 1199 const Node *getChild() const { return Child; } 1234 class TemplateArgs final : public Node { 1271 struct ForwardTemplateReference : Node { 1273 Node *Ref = nullptr; 1309 const Node *getSyntaxNode(OutputStream &S) const override { 1330 struct NameWithTemplateArgs : Node { 1332 Node *Name; 1333 Node *TemplateArgs; 1335 NameWithTemplateArgs(Node *Name_, Node *TemplateArgs_) 1335 NameWithTemplateArgs(Node *Name_, Node *TemplateArgs_) 1348 class GlobalQualifiedName final : public Node { 1349 Node *Child; 1352 GlobalQualifiedName(Node* Child_) 1365 struct StdQualifiedName : Node { 1366 Node *Child; 1368 StdQualifiedName(Node *Child_) : Node(KStdQualifiedName), Child(Child_) {} 1389 class ExpandedSpecialSubstitution final : public Node { 1441 class SpecialSubstitution final : public Node { 1492 class CtorDtorName final : public Node { 1493 const Node *Basename; 1498 CtorDtorName(const Node *Basename_, bool IsDtor_, int Variant_) 1511 class DtorName : public Node { 1512 const Node *Base; 1515 DtorName(const Node *Base_) : Node(KDtorName), Base(Base_) {} 1525 class UnnamedTypeName : public Node { 1540 class ClosureTypeName : public Node { 1574 class StructuredBindingName : public Node { 1591 class BinaryExpr : public Node { 1592 const Node *LHS; 1594 const Node *RHS; 1597 BinaryExpr(const Node *LHS_, StringView InfixOperator_, const Node *RHS_) 1597 BinaryExpr(const Node *LHS_, StringView InfixOperator_, const Node *RHS_) 1622 class ArraySubscriptExpr : public Node { 1623 const Node *Op1; 1624 const Node *Op2; 1627 ArraySubscriptExpr(const Node *Op1_, const Node *Op2_) 1627 ArraySubscriptExpr(const Node *Op1_, const Node *Op2_) 1641 class PostfixExpr : public Node { 1642 const Node *Child; 1646 PostfixExpr(const Node *Child_, StringView Operator_) 1659 class ConditionalExpr : public Node { 1660 const Node *Cond; 1661 const Node *Then; 1662 const Node *Else; 1665 ConditionalExpr(const Node *Cond_, const Node *Then_, const Node *Else_) 1665 ConditionalExpr(const Node *Cond_, const Node *Then_, const Node *Else_) 1665 ConditionalExpr(const Node *Cond_, const Node *Then_, const Node *Else_) 1681 class MemberExpr : public Node { 1682 const Node *LHS; 1684 const Node *RHS; 1687 MemberExpr(const Node *LHS_, StringView Kind_, const Node *RHS_) 1687 MemberExpr(const Node *LHS_, StringView Kind_, const Node *RHS_) 1699 class EnclosingExpr : public Node { 1701 const Node *Infix; 1705 EnclosingExpr(StringView Prefix_, Node *Infix_, StringView Postfix_) 1718 class CastExpr : public Node { 1721 const Node *To; 1722 const Node *From; 1725 CastExpr(StringView CastKind_, const Node *To_, const Node *From_) 1725 CastExpr(StringView CastKind_, const Node *To_, const Node *From_) 1740 class SizeofParamPackExpr : public Node { 1741 const Node *Pack; 1744 SizeofParamPackExpr(const Node *Pack_) 1757 class CallExpr : public Node { 1758 const Node *Callee; 1762 CallExpr(const Node *Callee_, NodeArray Args_) 1775 class NewExpr : public Node { 1778 Node *Type; 1783 NewExpr(NodeArray ExprList_, Node *Type_, NodeArray InitList_, bool IsGlobal_, 1814 class DeleteExpr : public Node { 1815 Node *Op; 1820 DeleteExpr(Node *Op_, bool IsGlobal_, bool IsArray_) 1835 class PrefixExpr : public Node { 1837 Node *Child; 1840 PrefixExpr(StringView Prefix_, Node *Child_) 1853 class FunctionParam : public Node { 1867 class ConversionExpr : public Node { 1868 const Node *Type; 1872 ConversionExpr(const Node *Type_, NodeArray Expressions_) 1886 class InitListExpr : public Node { 1887 const Node *Ty; 1890 InitListExpr(const Node *Ty_, NodeArray Inits_) 1904 class BracedExpr : public Node { 1905 const Node *Elem; 1906 const Node *Init; 1909 BracedExpr(const Node *Elem_, const Node *Init_, bool IsArray_) 1909 BracedExpr(const Node *Elem_, const Node *Init_, bool IsArray_) 1929 class BracedRangeExpr : public Node { 1930 const Node *First; 1931 const Node *Last; 1932 const Node *Init; 1934 BracedRangeExpr(const Node *First_, const Node *Last_, const Node *Init_) 1934 BracedRangeExpr(const Node *First_, const Node *Last_, const Node *Init_) 1934 BracedRangeExpr(const Node *First_, const Node *Last_, const Node *Init_) 1951 class FoldExpr : public Node { 1952 const Node *Pack, *Init; 1957 FoldExpr(bool IsLeftFold_, StringView OperatorName_, const Node *Pack_, 1958 const Node *Init_) 2006 class ThrowExpr : public Node { 2007 const Node *Op; 2010 ThrowExpr(const Node *Op_) : Node(KThrowExpr), Op(Op_) {} 2021 class UUIDOfExpr : public Node { 2022 Node *Operand; 2024 UUIDOfExpr(Node *Operand_) : Node(KUUIDOfExpr), Operand(Operand_) {} 2035 class BoolExpr : public Node { 2048 class StringLiteral : public Node { 2049 const Node *Type; 2052 StringLiteral(const Node *Type_) : Node(KStringLiteral), Type(Type_) {} 2063 class LambdaExpr : public Node { 2064 const Node *Type; 2067 LambdaExpr(const Node *Type_) : Node(KLambdaExpr), Type(Type_) {} 2079 class IntegerCastExpr : public Node { 2081 const Node *Ty; 2085 IntegerCastExpr(const Node *Ty_, StringView Integer_) 2098 class IntegerLiteral : public Node { 2129 constexpr Node::Kind getFloatLiteralKind(float *) { 2130 return Node::KFloatLiteral; 2132 constexpr Node::Kind getFloatLiteralKind(double *) { 2133 return Node::KDoubleLiteral; 2135 constexpr Node::Kind getFloatLiteralKind(long double *) { 2136 return Node::KLongDoubleLiteral; 2140 template <class Float> class FloatLiteralImpl : public Node { 2337 PODSmallVector<Node *, 32> Names; 2342 PODSmallVector<Node *, 32> Subs; 2344 using TemplateParamList = PODSmallVector<Node *, 8>; 2406 template <class T, class... Args> Node *make(Args &&... args) { 2413 Node **data = new (mem) Node *[sz]; 2413 Node **data = new (mem) Node *[sz]; 2458 Node *parseSubstitution(); 2459 Node *parseTemplateParam(); 2460 Node *parseTemplateParamDecl(); 2461 Node *parseTemplateArgs(bool TagTemplates = false); 2462 Node *parseTemplateArg(); 2465 Node *parseExpr(); 2466 Node *parsePrefixExpr(StringView Kind); 2467 Node *parseBinaryExpr(StringView Kind); 2468 Node *parseIntegerLiteral(StringView Lit); 2469 Node *parseExprPrimary(); 2470 template <class Float> Node *parseFloatingLiteral(); 2471 Node *parseFunctionParam(); 2472 Node *parseNewExpr(); 2473 Node *parseConversionExpr(); 2474 Node *parseBracedExpr(); 2475 Node *parseFoldExpr(); 2478 Node *parseType(); 2479 Node *parseFunctionType(); 2480 Node *parseVectorType(); 2481 Node *parseDecltype(); 2482 Node *parseArrayType(); 2483 Node *parsePointerToMemberType(); 2484 Node *parseClassEnumType(); 2485 Node *parseQualifiedType(); 2487 Node *parseEncoding(); 2489 Node *parseSpecialName(); 2519 Node *parseName(NameState *State = nullptr); 2520 Node *parseLocalName(NameState *State); 2521 Node *parseOperatorName(NameState *State); 2522 Node *parseUnqualifiedName(NameState *State); 2523 Node *parseUnnamedTypeName(NameState *State); 2524 Node *parseSourceName(NameState *State); 2525 Node *parseUnscopedName(NameState *State); 2526 Node *parseNestedName(NameState *State); 2527 Node *parseCtorDtorName(Node *&SoFar, NameState *State); 2527 Node *parseCtorDtorName(Node *&SoFar, NameState *State); 2529 Node *parseAbiTags(Node *N); 2529 Node *parseAbiTags(Node *N); 2532 Node *parseUnresolvedName(); 2533 Node *parseSimpleId(); 2534 Node *parseBaseUnresolvedName(); 2535 Node *parseUnresolvedType(); 2536 Node *parseDestructorName(); 2539 Node *parse(); 2552 Node *AbstractManglingParser<Derived, Alloc>::parseName(NameState *State) { 2562 Node *S = getDerived().parseSubstitution(); 2567 Node *TA = getDerived().parseTemplateArgs(State != nullptr); 2574 Node *N = getDerived().parseUnscopedName(State); 2580 Node *TA = getDerived().parseTemplateArgs(State != nullptr); 2594 Node *AbstractManglingParser<Derived, Alloc>::parseLocalName(NameState *State) { 2597 Node *Encoding = getDerived().parseEncoding(); 2603 auto *StringLitName = make<NameType>("string literal"); 2613 Node *N = getDerived().parseName(State); 2619 Node *Entity = getDerived().parseName(State); 2630 Node * 2633 Node *R = getDerived().parseUnqualifiedName(State); 2647 Node * 2650 Node *Result; 2658 Node *Binding = getDerived().parseSourceName(State); 2678 Node * 2699 Node *T = parseTemplateParamDecl(); 2733 Node *P = getDerived().parseType(); 2757 Node *AbstractManglingParser<Derived, Alloc>::parseSourceName(NameState *) { 2822 Node * 2863 Node *Ty = getDerived().parseType(); 2927 Node *SN = getDerived().parseSourceName(State); 3048 Node *SN = getDerived().parseSourceName(State); 3069 Node * 3070 AbstractManglingParser<Derived, Alloc>::parseCtorDtorName(Node *&SoFar, 3072 if (SoFar->getKind() == Node::KSpecialSubstitution) { 3132 Node * 3147 Node *SoFar = nullptr; 3182 Node *TA = getDerived().parseTemplateArgs(State != nullptr); 3203 Node *S = getDerived().parseSubstitution(); 3239 Node *AbstractManglingParser<Derived, Alloc>::parseSimpleId() { 3240 Node *SN = getDerived().parseSourceName(/*NameState=*/nullptr); 3244 Node *TA = getDerived().parseTemplateArgs(); 3255 Node *AbstractManglingParser<Derived, Alloc>::parseDestructorName() { 3256 Node *Result; 3270 Node *AbstractManglingParser<Derived, Alloc>::parseUnresolvedType() { 3272 Node *TP = getDerived().parseTemplateParam(); 3279 Node *DT = getDerived().parseDecltype(); 3296 Node *AbstractManglingParser<Derived, Alloc>::parseBaseUnresolvedName() { 3305 Node *Oper = getDerived().parseOperatorName(/*NameState=*/nullptr); 3309 Node *TA = getDerived().parseTemplateArgs(); 3329 Node *AbstractManglingParser<Derived, Alloc>::parseUnresolvedName() { 3330 Node *SoFar = nullptr; 3340 Node *TA = getDerived().parseTemplateArgs(); 3349 Node *Qual = getDerived().parseSimpleId(); 3357 Node *Base = getDerived().parseBaseUnresolvedName(); 3378 Node *Qual = getDerived().parseSimpleId(); 3399 Node *TA = getDerived().parseTemplateArgs(); 3410 Node *Base = getDerived().parseBaseUnresolvedName(); 3419 Node *AbstractManglingParser<Derived, Alloc>::parseAbiTags(Node *N) { 3419 Node *AbstractManglingParser<Derived, Alloc>::parseAbiTags(Node *N) { 3477 Node *AbstractManglingParser<Derived, Alloc>::parseFunctionType() { 3480 Node *ExceptionSpec = nullptr; 3486 Node *E = getDerived().parseExpr(); 3495 Node *T = getDerived().parseType(); 3511 Node *ReturnType = getDerived().parseType(); 3530 Node *T = getDerived().parseType(); 3547 Node *AbstractManglingParser<Derived, Alloc>::parseVectorType() { 3556 Node *ElemType = getDerived().parseType(); 3563 Node *DimExpr = getDerived().parseExpr(); 3568 Node *ElemType = getDerived().parseType(); 3573 Node *ElemType = getDerived().parseType(); 3582 Node *AbstractManglingParser<Derived, Alloc>::parseDecltype() { 3587 Node *E = getDerived().parseExpr(); 3598 Node *AbstractManglingParser<Derived, Alloc>::parseArrayType() { 3609 Node *DimExpr = getDerived().parseExpr(); 3617 Node *Ty = getDerived().parseType(); 3625 Node *AbstractManglingParser<Derived, Alloc>::parsePointerToMemberType() { 3628 Node *ClassType = getDerived().parseType(); 3631 Node *MemberType = getDerived().parseType(); 3642 Node *AbstractManglingParser<Derived, Alloc>::parseClassEnumType() { 3651 Node *Name = getDerived().parseName(); 3665 Node *AbstractManglingParser<Derived, Alloc>::parseQualifiedType() { 3684 Node *Child = getDerived().parseQualifiedType(); 3690 Node *Child = getDerived().parseQualifiedType(); 3697 Node *Ty = getDerived().parseType(); 3726 Node *AbstractManglingParser<Derived, Alloc>::parseType() { 3727 Node *Result = nullptr; 3906 Node *Child = getDerived().parseType(); 3960 Node *TA = getDerived().parseTemplateArgs(); 3970 Node *Ptr = getDerived().parseType(); 3979 Node *Ref = getDerived().parseType(); 3988 Node *Ref = getDerived().parseType(); 3997 Node *P = getDerived().parseType(); 4006 Node *P = getDerived().parseType(); 4015 Node *Sub = getDerived().parseSubstitution(); 4030 Node *TA = getDerived().parseTemplateArgs(); 4059 Node *AbstractManglingParser<Derived, Alloc>::parsePrefixExpr(StringView Kind) { 4060 Node *E = getDerived().parseExpr(); 4067 Node *AbstractManglingParser<Derived, Alloc>::parseBinaryExpr(StringView Kind) { 4068 Node *LHS = getDerived().parseExpr(); 4071 Node *RHS = getDerived().parseExpr(); 4078 Node * 4104 Node *AbstractManglingParser<Derived, Alloc>::parseFunctionParam() { 4132 Node *AbstractManglingParser<Derived, Alloc>::parseNewExpr() { 4139 Node *Ex = getDerived().parseExpr(); 4145 Node *Ty = getDerived().parseType(); 4151 Node *Init = getDerived().parseExpr(); 4166 Node *AbstractManglingParser<Derived, Alloc>::parseConversionExpr() { 4169 Node *Ty; 4181 Node *E = getDerived().parseExpr(); 4190 Node *E[1] = {getDerived().parseExpr()}; 4204 Node *AbstractManglingParser<Derived, Alloc>::parseExprPrimary() { 4267 Node *R = getDerived().parseEncoding(); 4273 Node *T = getDerived().parseType(); 4293 Node *T = parseUnnamedTypeName(nullptr); 4300 Node *T = getDerived().parseType(); 4318 Node *AbstractManglingParser<Derived, Alloc>::parseBracedExpr() { 4323 Node *Field = getDerived().parseSourceName(/*NameState=*/nullptr); 4326 Node *Init = getDerived().parseBracedExpr(); 4333 Node *Index = getDerived().parseExpr(); 4336 Node *Init = getDerived().parseBracedExpr(); 4343 Node *RangeBegin = getDerived().parseExpr(); 4346 Node *RangeEnd = getDerived().parseExpr(); 4349 Node *Init = getDerived().parseBracedExpr(); 4365 Node *AbstractManglingParser<Derived, Alloc>::parseFoldExpr() { 4415 Node *Pack = getDerived().parseExpr(), *Init = nullptr; 4475 Node *AbstractManglingParser<Derived, Alloc>::parseExpr() { 4510 Node *Ty = getDerived().parseType(); 4517 Node *Ty = getDerived().parseExpr(); 4529 Node *Ty = getDerived().parseType(); 4532 Node *Ex = getDerived().parseExpr(); 4540 Node *Callee = getDerived().parseExpr(); 4545 Node *E = getDerived().parseExpr(); 4566 Node *Ex = getDerived().parseExpr(); 4573 Node *T = getDerived().parseType(); 4576 Node *Ex = getDerived().parseExpr(); 4586 Node *E = getDerived().parseExpr(); 4595 Node *LHS = getDerived().parseExpr(); 4598 Node *RHS = getDerived().parseExpr(); 4605 Node *LHS = getDerived().parseExpr(); 4608 Node *RHS = getDerived().parseExpr(); 4648 Node *Base = getDerived().parseExpr(); 4651 Node *Index = getDerived().parseExpr(); 4660 Node *E = getDerived().parseBracedExpr(); 4703 Node *Ex = getDerived().parseExpr(); 4725 Node *Ex = getDerived().parseExpr(); 4761 Node *Ex = getDerived().parseExpr(); 4771 Node *L = getDerived().parseExpr(); 4774 Node *R = getDerived().parseExpr(); 4784 Node *Cond = getDerived().parseExpr(); 4787 Node *LHS = getDerived().parseExpr(); 4790 Node *RHS = getDerived().parseExpr(); 4800 Node *T = getDerived().parseType(); 4803 Node *Ex = getDerived().parseExpr(); 4826 Node *T = getDerived().parseType(); 4829 Node *Ex = getDerived().parseExpr(); 4836 Node *Child = getDerived().parseExpr(); 4845 Node *Ty = getDerived().parseType(); 4852 Node *Ex = getDerived().parseExpr(); 4860 Node *R = getDerived().parseTemplateParam(); 4865 Node *FP = getDerived().parseFunctionParam(); 4875 Node *Arg = getDerived().parseTemplateArg(); 4880 auto *Pack = make<NodeArrayNode>(popTrailingNodeArray(ArgsBegin)); 4891 Node *Ex = getDerived().parseExpr(); 4898 Node *Ty = getDerived().parseType(); 4905 Node *Ty = getDerived().parseType(); 4910 Node *E = getDerived().parseBracedExpr(); 4922 Node *Ex = getDerived().parseExpr(); 4942 Node *Ty = getDerived().parseType(); 4949 Node *Ex = getDerived().parseExpr(); 4997 Node *AbstractManglingParser<Derived, Alloc>::parseSpecialName() { 5004 Node *Ty = getDerived().parseType(); 5012 Node *Ty = getDerived().parseType(); 5020 Node *Ty = getDerived().parseType(); 5028 Node *Ty = getDerived().parseType(); 5038 Node *Encoding = getDerived().parseEncoding(); 5047 Node *FirstType = getDerived().parseType(); 5052 Node *SecondType = getDerived().parseType(); 5060 Node *Name = getDerived().parseName(); 5068 Node *Name = getDerived().parseName(); 5079 Node *BaseEncoding = getDerived().parseEncoding(); 5093 Node *Name = getDerived().parseName(); 5103 Node *Name = getDerived().parseName(); 5121 Node *AbstractManglingParser<Derived, Alloc>::parseEncoding() { 5133 Node *Name = getDerived().parseName(&NameInfo); 5143 Node *Attrs = nullptr; 5147 Node *Arg = getDerived().parseTemplateArg(); 5157 Node *ReturnType = nullptr; 5171 Node *Ty = getDerived().parseType(); 5219 Node *AbstractManglingParser<Alloc, Derived>::parseFloatingLiteral() { 5267 Node *AbstractManglingParser<Derived, Alloc>::parseSubstitution() { 5272 Node *SpecialSub; 5306 Node *WithTags = getDerived().parseAbiTags(SpecialSub); 5336 Node *AbstractManglingParser<Derived, Alloc>::parseTemplateParam() { 5363 Node *ForwardRef = make<ForwardTemplateReference>(Index); 5395 Node *AbstractManglingParser<Derived, Alloc>::parseTemplateParamDecl() { 5398 Node *N = make<SyntheticTemplateParamName>(Kind, Index); 5404 Node *Name = InventTemplateParamName(TemplateParamKind::Type); 5411 Node *Name = InventTemplateParamName(TemplateParamKind::NonType); 5414 Node *Type = parseType(); 5421 Node *Name = InventTemplateParamName(TemplateParamKind::Template); 5427 Node *P = parseTemplateParamDecl(); 5437 Node *P = parseTemplateParamDecl(); 5452 Node *AbstractManglingParser<Derived, Alloc>::parseTemplateArg() { 5456 Node *Arg = getDerived().parseExpr(); 5465 Node *Arg = getDerived().parseTemplateArg(); 5477 Node *Arg = getDerived().parseEncoding(); 5493 Node * 5510 Node *Arg = getDerived().parseTemplateArg(); 5515 Node *TableEntry = Arg; 5516 if (Arg->getKind() == Node::KTemplateArgumentPack) { 5524 Node *Arg = getDerived().parseTemplateArg(); 5539 Node *AbstractManglingParser<Derived, Alloc>::parse() { 5541 Node *Encoding = getDerived().parseEncoding(); 5554 Node *Encoding = getDerived().parseEncoding(); 5567 Node *Ty = getDerived().parseType();include/llvm/Support/PointerLikeTypeTraits.h
56 static inline void *getAsVoidPointer(T *P) { return P; } 57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); } 59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };lib/Demangle/ItaniumDemangle.cpp
69 template<typename NodeT> static constexpr bool wantsNewline(const NodeT *) { 86 void print(const Node *N) { 104 for (const Node *N : A) { 325 return Alloc.allocate(sizeof(Node *) * sz); 348 Node *AST = Parser.parse(); 397 static char *printNode(const Node *RootNode, char *Buf, size_t *N) { 412 const Node *Name = static_cast<const FunctionEncoding *>(RootNode)->getName(); 416 case Node::KAbiTagAttr: 419 case Node::KStdQualifiedName: 422 case Node::KNestedName: 425 case Node::KLocalName: 428 case Node::KNameWithTemplateArgs: 441 const Node *Name = static_cast<const FunctionEncoding *>(RootNode)->getName(); 449 if (Name->getKind() == Node::KAbiTagAttr) { 453 if (Name->getKind() == Node::KNameWithTemplateArgs) { 461 case Node::KStdQualifiedName: 464 case Node::KNestedName: 467 case Node::KLocalName: { 518 if (const Node *Ret = 542 const Node *N = static_cast<const Node *>(RootNode); 547 case Node::KCtorDtorName: 550 case Node::KAbiTagAttr: 553 case Node::KFunctionEncoding: 556 case Node::KLocalName: 559 case Node::KNameWithTemplateArgs: 562 case Node::KNestedName: 565 case Node::KStdQualifiedName: 576 Node::KFunctionEncoding; 582 return K == Node::KSpecialName || K == Node::KCtorVtableSpecialName; 582 return K == Node::KSpecialName || K == Node::KCtorVtableSpecialName;lib/Support/ItaniumManglingCanonicalizer.cpp
29 void operator()(const Node *P) { ID.AddPointer(P); } 52 for (const Node *N : A) 58 void profileCtor(llvm::FoldingSetNodeID &ID, Node::Kind K, T ...V) { 87 void profileNode(llvm::FoldingSetNodeID &ID, const Node *N) { 95 itanium_demangle::Node *getNode() { 108 std::pair<Node *, bool> getOrCreateNode(bool CreateNewNodes, Args &&... As) { 141 Node *makeNode(Args &&...As) { 146 return RawAlloc.Allocate(sizeof(Node *) * sz, alignof(Node *)); 146 return RawAlloc.Allocate(sizeof(Node *) * sz, alignof(Node *)); 151 Node *MostRecentlyCreated = nullptr; 152 Node *TrackedNode = nullptr; 155 llvm::SmallDenseMap<Node*, Node*, 32> Remappings; 155 llvm::SmallDenseMap<Node*, Node*, 32> Remappings; 157 template<typename T, typename ...Args> Node *makeNodeSimple(Args &&...As) { 158 std::pair<Node *, bool> Result = 165 if (auto *N = Remappings.lookup(Result.first)) { 179 template<typename ...Args> Node *make(Args &&...As) { 185 template<typename T, typename ...Args> Node *makeNode(Args &&...As) { 193 void addRemapping(Node *A, Node *B) { 193 void addRemapping(Node *A, Node *B) { 199 bool isMostRecentlyCreated(Node *N) const { return MostRecentlyCreated == N; } 201 void trackUsesOf(Node *N) { 214 Node *make(Node *Child) { 214 Node *make(Node *Child) { 215 Node *StdNamespace = Self.makeNode<itanium_demangle::NameType>("std"); 243 Node *N = nullptr; 284 Node *FirstNode, *SecondNode;tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
283 return Alloc.Allocate(sizeof(llvm::itanium_demangle::Node *) * sz, 284 alignof(llvm::itanium_demangle::Node *)); 340 llvm::itanium_demangle::Node *parseType() {unittests/Demangle/ItaniumDemangleTest.cpp
32 return Alloc.Allocate(sizeof(Node *) * sz, alignof(Node *)); 32 return Alloc.Allocate(sizeof(Node *) * sz, alignof(Node *)); 44 Node *parseType() {usr/include/c++/7.4.0/type_traits
1983 { typedef _Up type; };
utils/unittest/googletest/include/gtest/gtest-printers.h407 T* p, ::std::ostream* os) { 416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {