LocInfoType
{(clang::Type::TypeClass)TypeBits.TC, en}Type
{*(clang::BuiltinType *)this}
{*(clang::PointerType *)this}
{*(clang::LValueReferenceType *)this}
{*(clang::RValueReferenceType *)this}
{(clang::ConstantArrayType *)this,na}
{(clang::ConstantArrayType *)this,view(left)na}
{(clang::ConstantArrayType *)this,view(right)na}
{(clang::IncompleteArrayType *)this,na}
{(clang::IncompleteArrayType *)this,view(left)na}
{(clang::IncompleteArrayType *)this,view(right)na}
{(clang::TypedefType *)this,na}
{(clang::TypedefType *)this,view(cpp)na}
{*(clang::AttributedType *)this}
{(clang::DecayedType *)this,na}
{(clang::DecayedType *)this,view(left)na}
{(clang::DecayedType *)this,view(right)na}
{*(clang::TemplateTypeParmType *)this}
{*(clang::TemplateTypeParmType *)this,view(cpp)}
{*(clang::SubstTemplateTypeParmType *)this}
{*(clang::RecordType *)this}
{*(clang::RecordType *)this,view(cpp)}
{(clang::FunctionProtoType *)this,na}
{(clang::FunctionProtoType *)this,view(left)na}
{(clang::FunctionProtoType *)this,view(right)na}
{*(clang::TemplateSpecializationType *)this}
{*(clang::DeducedTemplateSpecializationType *)this}
{*(clang::DeducedTemplateSpecializationType *)this,view(cpp)}
{*(clang::InjectedClassNameType *)this}
{*(clang::DependentNameType *)this}
{*(clang::PackExpansionType *)this}
{(clang::LocInfoType *)this,na}
{(clang::LocInfoType *)this,view(cpp)na}
{this,view(poly)na}
{*this,view(cpp)}
No visualizer yet for {(clang::Type::TypeClass)TypeBits.TC,en}Type
Dependent{" ",sb}
InstantiationDependent{" ",sb}
VariablyModified{" ",sb}
ContainsUnexpandedParameterPack{" ",sb}
CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en} CachedLocalOrUnnamed
CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en}{" ",sb}
FromAST
No TypeBits set beyond TypeClass
{*this, view(Dependent)}{*this, view(InstantiationDependent)}{*this, view(VariablyModified)}
{*this, view(ContainsUnexpandedParameterPack)}{*this, view(Cache)}{*this, view(FromAST)}
{*this,view(cmn)} {{{*this,view(poly)}}}
- (clang::Type::TypeClass)TypeBits.TC
- this,view(flags)na
- CanonicalType
*(clang::BuiltinType *)this
*(clang::PointerType *)this
*(clang::LValueReferenceType *)this
*(clang::RValueReferenceType *)this
(clang::ConstantArrayType *)this
(clang::IncompleteArrayType *)this
*(clang::AttributedType *)this
(clang::DecayedType *)this
(clang::TemplateTypeParmType *)this
(clang::SubstTemplateTypeParmType *)this
(clang::RecordType *)this
(clang::FunctionProtoType *)this
(clang::TemplateSpecializationType *)this
(clang::DeducedTemplateSpecializationType *)this
(clang::InjectedClassNameType *)this
(clang::DependentNameType *)this
(clang::PackExpansionType *)this
(clang::LocInfoType *)this
- ElementType
{ElementType,view(cpp)}
[{Size}]
{ElementType,view(cpp)}[{Size}]
- Size
(clang::ArrayType *)this
{ElementType,view(cpp)}
[]
{ElementType,view(cpp)}[]
(clang::ArrayType *)this
{Decl,view(name)nd}
{Decl}
- Decl
*(clang::Type *)this, view(cmn)
{PointeeType, view(cpp)} *
- PointeeType
*(clang::Type *)this, view(cmn)
{((clang::ReferenceType *)this)->PointeeType,view(cpp)} &
*(clang::Type *)this, view(cmn)
- PointeeType
{((clang::ReferenceType *)this)->PointeeType,view(cpp)} &&
*(clang::Type *)this, view(cmn)
- PointeeType
{ModifiedType} Attribute={(clang::AttributedType::Kind)AttributedTypeBits.AttrKind}
{(clang::Decl::Kind)DeclContextBits.DeclKind,en}Decl
- (clang::Decl::Kind)DeclContextBits.DeclKind,en
FirstDecl
(clang::Decl *)(NextInContextAndBits.Value & ~3)
*this
Field {{{*(clang::DeclaratorDecl *)this,view(cpp)nd}}}
{*(clang::FunctionDecl *)this,nd}
Method {{{*this,view(cpp)}}}
Constructor {{{Name,view(cpp)}({*(clang::FunctionDecl *)this,view(parm0)nd})}}
Destructor {{~{Name,view(cpp)}()}}
typename
class
(not yet known if parameter pack)
...
{(TypeSourceInfo *)(DefaultArgument.ValueOrInherited.Val.Value&~3LL),view(cpp)}
{{InheritedInitializer}}
= {this,view(DefaultArg)na}
{*this,view(TorC)} {*this,view(MaybeEllipses)}{Name,view(cpp)} {this,view(Initializer)na}
{*TemplatedDecl,view(cpp)}
template{TemplateParams,na} {*TemplatedDecl};
- TemplateParams,na
- TemplatedDecl,na
{(clang::TypeSourceInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na}
{(clang::TypedefNameDecl::ModedTInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na}
{(TypeDecl *)this,view(cpp)nand}
typedef {this,view(type)na} {this,view(name)na};
- "Not yet calculated",sb
- (bool)(MaybeModedTInfo.Value & 2)
- (clang::TypeSourceInfo *)(MaybeModedTInfo.Value & ~7LL)
- (clang::TypedefNameDecl::ModedTInfo *)(MaybeModedTInfo.Value & ~7LL)
(TypeDecl *)this,nd
{(TypedefNameDecl *)this,view(name)nand}
using {(TypedefNameDecl *)this,view(name)nand} = {(TypedefNameDecl *)this,view(type)nand}
{Name}
Kind={(UncommonTemplateNameStorage::Kind)Kind,en}, Size={Size}
- (UncommonTemplateNameStorage::Kind)Kind
- Size
{Bits},
{this,view(cmn)na},{(OverloadedTemplateStorage*)this,na}
{this,view(cmn)na},{(AssumedTemplateStorage*)this,na}
{this,view(cmn)na},{(SubstTemplateTemplateParmStorage*)this,na}
{this,view(cmn)na},{(SubstTemplateTemplateParmPackStorage*)this,na}
{this,view(cmn)na}
- Bits
(OverloadedTemplateStorage*)this
(AssumedTemplateStorage*)this
(SubstTemplateTemplateParmStorage*)this
(SubstTemplateTemplateParmPackStorage*)this
{(clang::TemplateDecl *)(Val.Value & ~3LL),view(cpp)na}
{(clang::TemplateDecl *)(Val.Value & ~3LL),na}
{(clang::UncommonTemplateNameStorage *)(Val.Value & ~3LL),view(cpp)na}
{(clang::UncommonTemplateNameStorage *)(Val.Value & ~3LL),na}
{(clang::QualifiedTemplateName *)(Val.Value & ~3LL),view(cpp)na}
{(clang::QualifiedTemplateName *)(Val.Value & ~3LL),na}
{(clang::DependentTemplateName *)(Val.Value & ~3LL),view(cpp)na}
{(clang::DependentTemplateName *)(Val.Value & ~3LL),na}
- "TemplateDecl",s8b
-
(clang::TemplateDecl *)(Val.Value & ~3LL)
- "UncommonTemplateNameStorage",s8b
-
(clang::UncommonTemplateNameStorage *)(Val.Value & ~3LL)
- "QualifiedTemplateName",s8b
-
(clang::QualifiedTemplateName *)(Val.Value & ~3LL)
- "DependentTemplateName",s8b
-
(clang::DependentTemplateName *)(Val.Value & ~3LL)
- Val
{Storage,view(cpp)na}
{Storage,na}
Storage
{Name,view(cpp)}
{Name}
implicit{" ",sb}
{*this,view(implicit)nd}
{*this,view(modifiers)}{Name,view(cpp)}
{*this,view(modifiers)nd}struct {Name,view(cpp)}
{*this,view(modifiers)nd}interface {Name,view(cpp)}
{*this,view(modifiers)nd}union {Name,view(cpp)}
{*this,view(modifiers)nd}class {Name,view(cpp)}
{*this,view(modifiers)nd}enum {Name,view(cpp)}
(clang::DeclContext *)this
{decl,view(cpp)na}
{*decl}
*(clang::Type *)this, view(cmn)
- decl
{(clang::TagType *)this,view(cpp)na}
{(clang::TagType *)this,na}
- *(clang::TagType *)this
{{{*Replaced,view(cpp)} <= {CanonicalType,view(cpp)}}}
*(clang::Type *)this, view(cmn)
- *Replaced
{ResultType,view(cpp)}
{*(clang::QualType *)(this+1),view(cpp)}{*this,view(parm1)}
, {*((clang::QualType *)(this+1)+1),view(cpp)}{*this,view(parm2)}
, {*((clang::QualType *)(this+1)+2),view(cpp)}{*this,view(parm3)}
, {*((clang::QualType *)(this+1)+3),view(cpp)}{*this,view(parm4)}
, {*((clang::QualType *)(this+1)+4),view(cpp)}{*this,view(parm5)}
, /* expand for more params */
({*this,view(parm0)}) -> {ResultType,view(cpp)}
({*this,view(parm0)})
{this,view(left)na}{this,view(right)na}
- ResultType
{*this,view(parm0)}
FunctionTypeBits.NumParams
(clang::QualType *)(this+1)
*(clang::Type *)this, view(cmn)
{OriginalTy} adjusted to {AdjustedTy}
- OriginalTy
- AdjustedTy
{OriginalTy,view(left)}
{OriginalTy,view(right)}
{OriginalTy}
(clang::AdjustedType *)this
{TTPDecl->Name,view(cpp)}
Non-canonical: {*TTPDecl}
Canonical: {CanTTPTInfo}
*(clang::Type *)this, view(cmn)
{Decl,view(cpp)}
- Decl
- InjectedType
*(clang::Type *)this, view(cmn)
{NNS}{Name,view(cpp)na}
- NNS
- Name
*(clang::Type *)this, view(cmn)
{(IdentifierInfo*)Specifier,view(cpp)na}::
{(NamedDecl*)Specifier,view(cpp)na}::
{(Type*)Specifier,view(cpp)na}::
- (NestedNameSpecifier::StoredSpecifierKind)((Prefix.Value>>1)&3)
{Pattern}
- Pattern
- NumExpansions
*(clang::Type *)this, view(cmn)
{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(poly)}{*this,view(fastQuals)}
{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(cpp)}{*this,view(fastQuals)}
{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(left)}{*this,view(fastQuals)}
{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(right)}{*this,view(fastQuals)}
{" ",sb}const
{" ",sb}restrict
{" ",sb}const restrict
{" ",sb}volatile
{" ",sb}const volatile
{" ",sb}volatile restrict
{" ",sb}const volatile restrict
Cannot visualize non-fast qualifiers
Null
{((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,na}{*this,view(fastQuals)}
- *this,view(fastQuals)
((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType
{DeclInfo,view(cpp)na}
{DeclInfo,na}
- DeclInfo
*(clang::Type *)this, view(cmn)
{Ty,view(cpp)}
{Ty}
Ty
{(QualType *)&Ty,na}
- (QualType *)&Ty
- Data
Not building anything
Building a {LastTy}
{Argument,view(cpp)}
{Argument}
{*(clang::QualType *)&TypeOrValue.V,view(cpp)}
{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en} template argument: {*(clang::QualType *)&TypeOrValue.V}
{Args.Args[0]}{*this,view(arg1)}
, {Args.Args[1]}{*this,view(arg2)}
, {Args.Args[2]}, ...
{Args.Args[0],view(cpp)}{*this,view(arg1cpp)}
, {Args.Args[1],view(cpp)}{*this,view(arg2cpp)}
, {Args.Args[2],view(cpp)}, ...
{*this,view(arg0cpp)}
{*this,view(arg0)}
{(clang::Expr *)TypeOrValue.V,view(cpp)na}
{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en}
- *(clang::QualType *)&TypeOrValue.V
- (clang::Expr *)TypeOrValue.V
Args.NumArgs
Args.Args
{((TemplateArgumentLoc*)Arguments.BeginX)[0],view(cpp)}{*this,view(elt1)}
, {((TemplateArgumentLoc*)Arguments.BeginX)[1],view(cpp)}{*this,view(elt2)}
, {((TemplateArgumentLoc*)Arguments.BeginX)[2],view(cpp)}{*this,view(elt3)}
, {((TemplateArgumentLoc*)Arguments.BeginX)[3],view(cpp)}{*this,view(elt4)}
, ...
empty
<{*this,view(elt0)}>
Uninitialized
{Arguments[0],view(cpp)}{*this,view(arg1)}
, {Arguments[1],view(cpp)}{*this,view(arg2)}
, {Arguments[1],view(cpp)}, ...
<{*this,view(arg0)}>
- NumArguments
NumArguments
Arguments
{Data[0],view(cpp)}{*this,view(arg1)}
, {Data[1],view(cpp)}{*this,view(arg2)}
, {Data[2],view(cpp)}, ...
<{*this,view(arg0)}>
- Length
Length
Data
{((llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX)[0],view(cpp)}{*this,view(level1)}
::{((llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX)[1],view(cpp)}{*this,view(level2)}
::{((llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX)[2],view(cpp)}, ...
{*this,view(level0)}
- TemplateArgumentLists
{(clang::QualType *)Arg,view(cpp)na}
Type template argument: {*(clang::QualType *)Arg}
Non-type template argument: {*(clang::Expr *)Arg}
Template template argument: {*(clang::TemplateName *)Arg
- Kind,en
- (clang::QualType *)Arg
- (clang::Expr *)Arg
- (clang::TemplateName *)Arg
void
bool
char
unsigned char
wchar_t
char16_t
char32_t
unsigned short
unsigned int
unsigned long
unsigned long long
__uint128_t
char
signed char
wchar_t
short
int
long
long long
__int128_t
__fp16
float
double
long double
nullptr_t
{(clang::BuiltinType::Kind)BuiltinTypeBits.Kind, en}
- (clang::BuiltinType::Kind)BuiltinTypeBits.Kind
{((clang::TemplateArgument *)(this+1))[0],view(cpp)}{*this,view(arg1)}
, {((clang::TemplateArgument *)(this+1))[1],view(cpp)}{*this,view(arg2)}
, {((clang::TemplateArgument *)(this+1))[2],view(cpp)}{*this,view(arg3)}
{*((clang::TemplateDecl *)(Template.Storage.Val.Value))->TemplatedDecl,view(cpp)}<{*this,view(arg0)}>
Can't visualize this TemplateSpecializationType
- Template.Storage
TemplateSpecializationTypeBits.NumArgs
(clang::TemplateArgument *)(this+1)
*(clang::Type *)this, view(cmn)
- (CanonicalType.Value.Value != this) || TypeBits.Dependent
*(clang::Type *)this,view(cmn)
{CanonicalType,view(cpp)}
{Template,view(cpp)}
{Template}
- Template
- CanonicalType,view(cpp)
(clang::DeducedType *)this
- Template
{*(CXXRecordDecl *)this,nd}{*TemplateArgs}
(CXXRecordDecl *)this,nd
- TemplateArgs
{((llvm::StringMapEntry<clang::IdentifierInfo *>*)Entry)+1,sb}
- ((llvm::StringMapEntry<clang::IdentifierInfo *>*)Entry)+1,s
- (clang::tok::TokenKind)TokenID
Empty
{*(clang::IdentifierInfo *)(Ptr & ~PtrMask)}
{{Identifier ({*(clang::IdentifierInfo *)(Ptr & ~PtrMask)})}}
{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr & ~PtrMask)})}}
{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr & ~PtrMask)})}}
{(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),view(cpp)na}
C++ Constructor {{{(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),view(cpp)na}}}
C++ Destructor {{*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)}}
C++ Conversion function {{*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)}}
C++ Operator {{*(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask)}}
{*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),view(cpp)}
{{Extra ({*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask)})}}
- StoredNameKind(Ptr & PtrMask),en
- *(clang::IdentifierInfo *)(Ptr & ~PtrMask),na
- *(clang::IdentifierInfo *)(Ptr & ~PtrMask),na
- *(clang::IdentifierInfo *)(Ptr & ~PtrMask),na
- *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na
- *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na
- *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na
- *(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask),na
- (clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),na
{(CXXDeductionGuideNameExtra *)this,view(cpp)nand}
{(CXXDeductionGuideNameExtra *)this,nand}
C++ Literal operator
C++ Using directive
{(clang::detail::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{" ",sb}{*this,view(cpp)}
(CXXDeductionGuideNameExtra *)this
- ExtraKindOrNumArgs
{Template->TemplatedDecl,view(cpp)}
C++ Deduction guide for {Template->TemplatedDecl,view(cpp)na}
{Type,view(cpp)}
{Type}
{Name}
{(ParsedTemplateArgument *)(this+1),view(cpp)na}{this,view(arg1)na}
, {((ParsedTemplateArgument *)(this+1))+1,view(cpp)na}{this,view(arg2)na}
, ...
{Name,na}<{this,view(arg0)na}>
- Name
{this,view(arg0)na}
NumArgs
(ParsedTemplateArgument *)(this+1)
- Operator
{{annot_template_id ({(clang::TemplateIdAnnotation *)(PtrData),na})}}
{{Identifier ({(clang::IdentifierInfo *)(PtrData),na})}}
{(clang::tok::TokenKind)Kind,en}
{BufferPtr,nasb}
{TheLexer._Mypair._Myval2,na}
Expanding Macro: {TheTokenLexer._Mypair._Myval2,na}
[{(Token *)(CachedTokens.BeginX) + CachedLexPos,na}] {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}
{IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}
{CurLexer._Mypair._Myval2,na}
Expanding Macro: {CurTokenLexer._Mypair._Myval2,na}
{this,view(cached)}
CLK_LexAfterModuleImport
[{Tok}] {PP,na}
this
*this
{Id}
&{Id}
No visualizer for {Kind}
=,
&,
{(LambdaCapture *)(Captures.BeginX),na}{this,view(capture1)na}
,{(LambdaCapture *)(Captures.BeginX)+1,na}{this,view(capture2)na}
,{(LambdaCapture *)(Captures.BeginX)+2,na}{this,view(capture3)na}
,...
[{this,view(default)na}{this,view(capture0)na}]
, [{TypeRep}]
, [{ExprRep}]
, [{DeclRep}]
[{(clang::DeclSpec::SCS)StorageClassSpec,en}], [{(clang::TypeSpecifierType)TypeSpecType,en}]{this,view(extra)na}
- (clang::DeclSpec::SCS)StorageClassSpec
- (clang::TypeSpecifierType)TypeSpecType
-
TypeRep
-
ExprRep
-
DeclRep
{Name,s}
{Name,s}
{Name,s}
- (clang::StorageClass)SClass
- (clang::ThreadStorageClassSpecifier)TSCSpec
- (clang::VarDecl::InitializationStyle)InitStyle
{DeclType,view(left)} {Name,view(cpp)}{DeclType,view(right)}
- Name
- DeclType
{(DeclaratorDecl*)this,nand}
(DeclaratorDecl*)this,nd
- Init
- VarDeclBits
{*(VarDecl*)this,nd}
- ParmVarDeclBits
*(VarDecl*)this,nd
{"explicit ",sb}
explicit({ExplicitSpec,view(ptr)na})
{ExplicitSpec,view(int)en}
{ExplicitSpec,view(int)en} : {ExplicitSpec,view(ptr)na}
{ExplicitSpec,view(cpp)}{Name,view(cpp)nd}({(FunctionDecl*)this,view(parm0)nand}) -> {((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)}
- ExplicitSpec
- (bool)FunctionDeclBits.IsCopyDeductionCandidate
(FunctionDecl*)this,nd
{((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)}
{ParamInfo[0],na}{*this,view(parm1)nd}
, {ParamInfo[1],na}{*this,view(parm2)nd}
, {ParamInfo[2],na}{*this,view(parm3)nd}
, {ParamInfo[3],na}{*this,view(parm4)nd}
, {ParamInfo[4],na}{*this,view(parm5)nd}
, /* expand for more params */
auto {Name,view(cpp)nd}({*this,view(parm0)nd}) -> {((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)}
{this,view(retType)nand} {Name,view(cpp)nd}({*this,view(parm0)nd})
(clang::DeclaratorDecl *)this,nd
- ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType
{*this,view(parm0)nd}
((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams
ParamInfo
- TemplateOrSpecialization
{*($T1*)&Ptr}
($T1*)&Ptr
{($T1 *)Ptr}
($T1 *)Ptr
{*((NamedDecl **)(this+1))[0],view(cpp)}{*this,view(parm1)}
, {*((NamedDecl **)(this+1))[1],view(cpp)}{*this,view(parm2)}
, {*((NamedDecl **)(this+1))[2],view(cpp)}{*this,view(parm3)}
, {*((NamedDecl **)(this+1))[3],view(cpp)}{*this,view(parm4)}
, {*((NamedDecl **)(this+1))[4],view(cpp)}{*this,view(parm5)}
, /* Expand for more params */
<{*this,view(parm0)}>
NumParams
(NamedDecl **)(this+1)
{(clang::Stmt::StmtClass)StmtBits.sClass,en}
- (clang::Stmt::StmtClass)StmtBits.sClass,en
Expression of class {(clang::Stmt::StmtClass)StmtBits.sClass,en} and type {TR,view(cpp)}
public
protected
private
{*(clang::NamedDecl *)(Ptr&~Mask)}
{*this,view(access)} {*this,view(decl)}
- (clang::AccessSpecifier)(Ptr&Mask),en
- *(clang::NamedDecl *)(Ptr&~Mask)
[IK_Identifier] {*Identifier}
[IK_OperatorFunctionId] {OperatorFunctionId}
[IK_ConversionFunctionId] {ConversionFunctionId}
[IK_ConstructorName] {ConstructorName}
[IK_DestructorName] {DestructorName}
[IK_DeductionGuideName] {TemplateName}
[IK_TemplateId] {TemplateId}
[IK_ConstructorTemplateId] {TemplateId}
Kind
Identifier
OperatorFunctionId
ConversionFunctionId
ConstructorName
DestructorName
TemplateName
TemplateId
TemplateId
NumDecls={NumDecls}
NumDecls
(Decl **)(this+1)
{*D}
{*(DeclGroup *)((uintptr_t)D&~1)}
D
(DeclGroup *)((uintptr_t)D&~1)
{DS} {Name}
{Decls}
Decls
{Ambiguity,en}: {Decls}
{ResultKind,en}: {Decls}
Invalid
Unset
{Val}
Invalid
Unset
{($T1)(PtrWithInvalid&~1)}
- (bool)(PtrWithInvalid&1)
- ($T1)(PtrWithInvalid&~1)