reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

include/llvm/Demangle/ItaniumDemangle.h
  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 {

References

include/llvm/ADT/DenseMapInfo.h
   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.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {