LocInfoType
{(clang::Type::TypeClass)TypeBits.TC, en}Type
{*(clang::BuiltinType *)this}
{*(clang::PointerType *)this}
{*(clang::LValueReferenceType *)this}
{*(clang::RValueReferenceType *)this}
{*(clang::AttributedType *)this}
{*(clang::TemplateTypeParmType *)this}
{*(clang::SubstTemplateTypeParmType *)this}
{*(clang::RecordType *)this}
{*(clang::RecordType *)this,view(cpp)}
{*(clang::FunctionProtoType *)this}
{*(clang::TemplateSpecializationType *)this}
{*(clang::InjectedClassNameType *)this}
{*(clang::PackExpansionType *)this}
{*(clang::LocInfoType *)this}
{*this,view(poly)}
{*this,view(cmn)}
{*this,view(cmn)} {{{*this,view(poly)}}}
- (clang::Type::TypeClass)TypeBits.TC
- TypeBits
- CanonicalType
*(clang::BuiltinType *)this
*(clang::PointerType *)this
*(clang::LValueReferenceType *)this
*(clang::RValueReferenceType *)this
*(clang::AttributedType *)this
(clang::TemplateTypeParmType *)this
(clang::SubstTemplateTypeParmType *)this
(clang::RecordType *)this
(clang::FunctionProtoType *)this
(clang::TemplateSpecializationType *)this
(clang::InjectedClassNameType *)this
(clang::PackExpansionType *)this
(clang::LocInfoType *)this
{PointeeType, view(poly)} *
- 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)DeclKind,en}Decl
- (clang::Decl::Kind)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
...
{*this,view(TorC)} {*this,view(MaybeEllipses)}{Name,view(cpp)}
template{*TemplateParams} {*TemplatedDecl};
{Name,view(cpp)}
{Name}
implicit{" ",sb}
{*this,view(implicit)}
{*this,view(modifiers)}{Name,view(cpp)}
{*this,view(modifiers)}struct {Name,view(cpp)}
{*this,view(modifiers)}interface {Name,view(cpp)}
{*this,view(modifiers)}union {Name,view(cpp)}
{*this,view(modifiers)}class {Name,view(cpp)}
{*this,view(modifiers)}enum {Name,view(cpp)}
(clang::DeclContext *)this
{*decl,view(cpp)}
{*decl}
*(clang::Type *)this, view(cmn)
- decl
{*(clang::TagType *)this,view(cpp)}
{*(clang::TagType *)this}
- *(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(retType)}({*this,view(parm0)})
- ResultType
{*this,view(parm0)}
NumParams
(clang::QualType *)(this+1)
*(clang::Type *)this, view(cmn)
{*TTPDecl,view(cpp)}
{*TTPDecl}
{*Decl,view(cpp)}
- Decl
- InjectedType
*(clang::Type *)this, view(cmn)
{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)}
{" ",sb}const
{" ",sb}restrict
{" ",sb}const restrict
{" ",sb}volatile
{" ",sb}const volatile
{" ",sb}volatile restrict
{" ",sb}const volatile restrict
Cannot visualize non-fast qualifiers
{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType}{*this,view(fastQuals)}
- *this,view(fastQuals)
- *((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType
{*DeclInfo}
- DeclInfo
*(clang::Type *)this, view(cmn)
{Ty}
{Argument}
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::TemplateArgument::ArgKind)TypeOrValue.Kind,en}
- *(clang::QualType *)&TypeOrValue.V
Args.NumArgs
Args.Args
{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)}>
{((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
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.Val.Value >> 2) << 2))->TemplatedDecl,view(cpp)}<{*this,view(arg0)}>
- Template.Storage
NumArgs
(clang::TemplateArgument *)(this+1)
{((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::DeclarationNameExtra *)(Ptr & ~PtrMask),view(cpp)}
{{Extra ({*(clang::DeclarationNameExtra *)(Ptr & ~PtrMask)})}}
- *(clang::IdentifierInfo *)(Ptr & ~PtrMask)
- *(clang::IdentifierInfo *)(Ptr & ~PtrMask)
- *(clang::IdentifierInfo *)(Ptr & ~PtrMask)
- (clang::DeclarationNameExtra *)(Ptr & ~PtrMask)
{((clang::CXXSpecialName *)this)->Type,view(cpp)}
{(clang::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{" ",sb}{*this,view(cpp)}
{(clang::tok::TokenKind)Kind,en}
{{Identifier ({*(clang::IdentifierInfo *)(PtrData)})}}
[{(clang::DeclSpec::SCS)StorageClassSpec}], [{(clang::TypeSpecifierType)TypeSpecType}]
{Name,s}
{Name,s}
{Name,s}
- (clang::StorageClass)SClass
- (clang::ThreadStorageClassSpecifier)TSCSpec
- (clang::VarDecl::InitializationStyle)InitStyle
{DeclType,view(cpp)} {Name,view(cpp)}
- Name
- DeclType
{*(DeclaratorDecl*)this,nd}
*(DeclaratorDecl*)this,nd
- VarDeclBits
{*(VarDecl*)this,nd}
- ParmVarDeclBits
*(VarDecl*)this,nd
{*(clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType,view(retType)}
{*ParamInfo[0]}{*this,view(parm1)nd}
, {*ParamInfo[1]}{*this,view(parm2)nd}
, {*ParamInfo[2]}{*this,view(parm3)nd}
, {*ParamInfo[3]}{*this,view(parm4)nd}
, {*ParamInfo[4]}{*this,view(parm5)nd}
, /* expand for more params */
{*this,view(retType)nd} {Name,view(cpp)nd}({*this,view(parm0)nd})
- *this,view(retType)nd
{*this,view(parm0)nd}
((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->NumParams
ParamInfo
*(clang::Type *)this, view(cmn)
{*(clang::QualType *)this}
- *(clang::QualType *)this
{*(clang::QualType *)this}
- *(clang::QualType *)this
{($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
b
{*(clang::NamedDecl *)(Ptr&~Mask)}
{*this,view(access)} {*this,view(decl)}
{Decls}
Decls
{Ambiguity,en}: {Decls}
{ResultKind,en}: {Decls}
Invalid
Valid
Invalid
Valid
{*this,view(packedValidity)}: {($T1 *)(PtrWithInvalid&~1)}
- (bool)(PtrWithInvalid&1)
- ($T1 *)(PtrWithInvalid&~1)
{*this,view(unpackedValidity)}: {Val}
{*this,view(packed)}
{*this,view(unpacked)}
*this,view(packed)
*this,view(unpacked)