1 1.1 joerg <?xml version="1.0" encoding="utf-8"?> 2 1.1 joerg <!-- 3 1.1 joerg Visual Studio Native Debugging Visualizers for LLVM 4 1.1 joerg 5 1.1 joerg For Visual Studio 2013 only, put this file into 6 1.1 joerg "%USERPROFILE%\Documents\Visual Studio 2013\Visualizers" or create a symbolic link so it updates automatically. 7 1.1 joerg 8 1.1 joerg For later versions of Visual Studio, no setup is required--> 9 1.1 joerg <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 10 1.1 joerg 11 1.1 joerg <Type Name="clang::Type"> 12 1.1 joerg <!-- To visualize clang::Types, we need to look at TypeBits.TC to determine the actual 13 1.1 joerg type subclass and manually dispatch accordingly (Visual Studio can't identify the real type 14 1.1 joerg because clang::Type has no virtual members hence no RTTI). 15 1.1 joerg 16 1.1 joerg Views: 17 1.1 joerg "cmn": Visualization that is common to all clang::Type subclasses 18 1.1 joerg "poly": Visualization that is specific to the actual clang::Type subclass. The subtype-specific 19 1.1 joerg <DisplayString> is typically as C++-like as possible (like in dump()) with <Expand> 20 1.1 joerg containing all the gory details. 21 1.1 joerg "cpp": Only occasionally used when we need to distinguish between an ordinary view and a C++-like view. 22 1.1 joerg --> 23 1.1 joerg <DisplayString IncludeView="cmn" Condition="TypeBits.TC==clang::LocInfoType::LocInfo">LocInfoType</DisplayString> 24 1.1 joerg <DisplayString IncludeView="cmn">{(clang::Type::TypeClass)TypeBits.TC, en}Type</DisplayString> 25 1.1 joerg <!-- Dispatch to visualizers for the actual Type subclass --> 26 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Builtin" IncludeView="poly">{*(clang::BuiltinType *)this}</DisplayString> 27 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Pointer" IncludeView="poly">{*(clang::PointerType *)this}</DisplayString> 28 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference" IncludeView="poly">{*(clang::LValueReferenceType *)this}</DisplayString> 29 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::RValueReference" IncludeView="poly">{*(clang::RValueReferenceType *)this}</DisplayString> 30 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::ConstantArray" IncludeView="poly">{(clang::ConstantArrayType *)this,na}</DisplayString> 31 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::ConstantArray" IncludeView="left">{(clang::ConstantArrayType *)this,view(left)na}</DisplayString> 32 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::ConstantArray" IncludeView="right">{(clang::ConstantArrayType *)this,view(right)na}</DisplayString> 33 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::IncompleteArray" IncludeView="poly">{(clang::IncompleteArrayType *)this,na}</DisplayString> 34 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::IncompleteArray" IncludeView="left">{(clang::IncompleteArrayType *)this,view(left)na}</DisplayString> 35 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::IncompleteArray" IncludeView="right">{(clang::IncompleteArrayType *)this,view(right)na}</DisplayString> 36 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Typedef" IncludeView="poly">{(clang::TypedefType *)this,na}</DisplayString> 37 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Typedef" IncludeView="cpp">{(clang::TypedefType *)this,view(cpp)na}</DisplayString> 38 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Attributed" IncludeView="poly">{*(clang::AttributedType *)this}</DisplayString> 39 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Decayed" IncludeView="poly">{(clang::DecayedType *)this,na}</DisplayString> 40 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Decayed" IncludeView="left">{(clang::DecayedType *)this,view(left)na}</DisplayString> 41 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Decayed" IncludeView="right">{(clang::DecayedType *)this,view(right)na}</DisplayString> 42 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm" IncludeView="poly">{*(clang::TemplateTypeParmType *)this}</DisplayString> 43 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm" IncludeView="cpp">{*(clang::TemplateTypeParmType *)this,view(cpp)}</DisplayString> 44 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm" IncludeView="poly">{*(clang::SubstTemplateTypeParmType *)this}</DisplayString> 45 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="poly">{*(clang::RecordType *)this}</DisplayString> 46 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="cpp">{*(clang::RecordType *)this,view(cpp)}</DisplayString> 47 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto" IncludeView="poly">{(clang::FunctionProtoType *)this,na}</DisplayString> 48 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto" IncludeView="left">{(clang::FunctionProtoType *)this,view(left)na}</DisplayString> 49 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto" IncludeView="right">{(clang::FunctionProtoType *)this,view(right)na}</DisplayString> 50 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization" IncludeView="poly">{*(clang::TemplateSpecializationType *)this}</DisplayString> 51 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::DeducedTemplateSpecialization" IncludeView="poly">{*(clang::DeducedTemplateSpecializationType *)this}</DisplayString> 52 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::DeducedTemplateSpecialization" IncludeView="cpp">{*(clang::DeducedTemplateSpecializationType *)this,view(cpp)}</DisplayString> 53 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName" IncludeView="poly">{*(clang::InjectedClassNameType *)this}</DisplayString> 54 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::DependentName" IncludeView="poly">{*(clang::DependentNameType *)this}</DisplayString> 55 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::PackExpansion" IncludeView="poly">{*(clang::PackExpansionType *)this}</DisplayString> 56 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::LocInfoType::LocInfo" IncludeView="poly">{(clang::LocInfoType *)this,na}</DisplayString> 57 1.1 joerg <DisplayString Condition="TypeBits.TC==clang::LocInfoType::LocInfo" IncludeView="cpp">{(clang::LocInfoType *)this,view(cpp)na}</DisplayString> 58 1.1 joerg <DisplayString IncludeView="cpp">{this,view(poly)na}</DisplayString> 59 1.1 joerg <DisplayString IncludeView="left">{*this,view(cpp)}</DisplayString> 60 1.1 joerg <DisplayString IncludeView="right"></DisplayString> 61 1.1 joerg <DisplayString IncludeView="poly">No visualizer yet for {(clang::Type::TypeClass)TypeBits.TC,en}Type</DisplayString> <!-- Not yet implemented Type subclass --> 62 1.1 joerg <DisplayString IncludeView="Dependent" Condition="TypeBits.Dependent">Dependent{" ",sb}</DisplayString> 63 1.1 joerg <DisplayString IncludeView="Dependent"></DisplayString> 64 1.1 joerg <DisplayString IncludeView="InstantiationDependent" Condition="TypeBits.InstantiationDependent">InstantiationDependent{" ",sb}</DisplayString> 65 1.1 joerg <DisplayString IncludeView="InstantiationDependent"></DisplayString> 66 1.1 joerg <DisplayString IncludeView="VariablyModified" Condition="TypeBits.VariablyModified">VariablyModified{" ",sb}</DisplayString> 67 1.1 joerg <DisplayString IncludeView="VariablyModified"></DisplayString> 68 1.1 joerg <DisplayString IncludeView="ContainsUnexpandedParameterPack" Condition="TypeBits.ContainsUnexpandedParameterPack">ContainsUnexpandedParameterPack{" ",sb}</DisplayString> 69 1.1 joerg <DisplayString IncludeView="ContainsUnexpandedParameterPack"></DisplayString> 70 1.1 joerg <DisplayString IncludeView="Cache" Condition="TypeBits.CacheValid && TypeBits.CachedLocalOrUnnamed">CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en} CachedLocalOrUnnamed</DisplayString> 71 1.1 joerg <DisplayString IncludeView="Cache" Condition="TypeBits.CacheValid && !TypeBits.CachedLocalOrUnnamed">CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en}{" ",sb}</DisplayString> 72 1.1 joerg <DisplayString IncludeView="Cache"></DisplayString> 73 1.1 joerg <DisplayString IncludeView="FromAST" Condition="TypeBits.FromAST">FromAST</DisplayString> 74 1.1 joerg <DisplayString IncludeView="FromAST"></DisplayString> 75 1.1 joerg <DisplayString IncludeView="flags" Condition="!TypeBits.Dependent && !TypeBits.InstantiationDependent && !TypeBits.VariablyModified && !TypeBits.ContainsUnexpandedParameterPack && !TypeBits.CacheValid && !TypeBits.FromAST"> 76 1.1 joerg No TypeBits set beyond TypeClass 77 1.1 joerg </DisplayString> 78 1.1 joerg <DisplayString IncludeView="flags"> 79 1.1 joerg {*this, view(Dependent)}{*this, view(InstantiationDependent)}{*this, view(VariablyModified)} 80 1.1 joerg {*this, view(ContainsUnexpandedParameterPack)}{*this, view(Cache)}{*this, view(FromAST)}</DisplayString> 81 1.1 joerg <DisplayString>{*this,view(cmn)} {{{*this,view(poly)}}}</DisplayString> 82 1.1 joerg <Expand> 83 1.1 joerg <Item Name="TypeClass" IncludeView="cmn">(clang::Type::TypeClass)TypeBits.TC</Item> 84 1.1 joerg <Item Name="Flags" IncludeView="cmn">this,view(flags)na</Item> 85 1.1 joerg <Item Name="Canonical" IncludeView="cmn">CanonicalType</Item> 86 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Builtin">*(clang::BuiltinType *)this</ExpandedItem> 87 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Pointer">*(clang::PointerType *)this</ExpandedItem> 88 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference">*(clang::LValueReferenceType *)this</ExpandedItem> 89 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::RValueReference">*(clang::RValueReferenceType *)this</ExpandedItem> 90 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::ConstantArray">(clang::ConstantArrayType *)this</ExpandedItem> 91 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::IncompleteArray">(clang::IncompleteArrayType *)this</ExpandedItem> 92 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Attributed">*(clang::AttributedType *)this</ExpandedItem> 93 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Decayed">(clang::DecayedType *)this</ExpandedItem> 94 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm">(clang::TemplateTypeParmType *)this</ExpandedItem> 95 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm">(clang::SubstTemplateTypeParmType *)this</ExpandedItem> 96 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Record">(clang::RecordType *)this</ExpandedItem> 97 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto">(clang::FunctionProtoType *)this</ExpandedItem> 98 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization">(clang::TemplateSpecializationType *)this</ExpandedItem> 99 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::DeducedTemplateSpecialization">(clang::DeducedTemplateSpecializationType *)this</ExpandedItem> 100 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName">(clang::InjectedClassNameType *)this</ExpandedItem> 101 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::DependentName">(clang::DependentNameType *)this</ExpandedItem> 102 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::PackExpansion">(clang::PackExpansionType *)this</ExpandedItem> 103 1.1 joerg <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::LocInfoType::LocInfo">(clang::LocInfoType *)this</ExpandedItem> 104 1.1 joerg </Expand> 105 1.1 joerg </Type> 106 1.1 joerg <Type Name="clang::ArrayType"> 107 1.1 joerg <Expand> 108 1.1 joerg <Item Name="ElementType">ElementType</Item> 109 1.1 joerg </Expand> 110 1.1 joerg </Type> 111 1.1 joerg <Type Name="clang::ConstantArrayType"> 112 1.1 joerg <DisplayString IncludeView="left">{ElementType,view(cpp)}</DisplayString> 113 1.1 joerg <DisplayString IncludeView="right">[{Size}]</DisplayString> 114 1.1 joerg <DisplayString>{ElementType,view(cpp)}[{Size}]</DisplayString> 115 1.1 joerg <Expand> 116 1.1 joerg <Item Name="Size">Size</Item> 117 1.1 joerg <ExpandedItem>(clang::ArrayType *)this</ExpandedItem> 118 1.1 joerg </Expand> 119 1.1 joerg </Type> 120 1.1 joerg <Type Name="clang::IncompleteArrayType"> 121 1.1 joerg <DisplayString IncludeView="left">{ElementType,view(cpp)}</DisplayString> 122 1.1 joerg <DisplayString IncludeView="right">[]</DisplayString> 123 1.1 joerg <DisplayString>{ElementType,view(cpp)}[]</DisplayString> 124 1.1 joerg <Expand> 125 1.1 joerg <ExpandedItem>(clang::ArrayType *)this</ExpandedItem> 126 1.1 joerg </Expand> 127 1.1 joerg </Type> 128 1.1 joerg <Type Name="clang::TypedefType"> 129 1.1 joerg <DisplayString IncludeView="cpp">{Decl,view(name)nd}</DisplayString> 130 1.1 joerg <DisplayString>{Decl}</DisplayString> 131 1.1 joerg <Expand> 132 1.1 joerg <Item Name="Decl">Decl</Item> 133 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 134 1.1 joerg </Expand> 135 1.1 joerg </Type> 136 1.1 joerg <Type Name="clang::PointerType"> 137 1.1 joerg <DisplayString>{PointeeType, view(cpp)} *</DisplayString> 138 1.1 joerg <Expand> 139 1.1 joerg <Item Name="PointeeType">PointeeType</Item> 140 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 141 1.1 joerg </Expand> 142 1.1 joerg </Type> 143 1.1 joerg <!-- We visualize all inner types for clang reference types. So a rvalue reference to an lvalue reference 144 1.1 joerg to an int would visual as int & && This is a little different than GetPointeeType(), 145 1.1 joerg but more clearly displays the data structure and seems natural --> 146 1.1 joerg <Type Name="clang::LValueReferenceType"> 147 1.1 joerg <DisplayString>{((clang::ReferenceType *)this)->PointeeType,view(cpp)} &</DisplayString> 148 1.1 joerg <Expand> 149 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 150 1.1 joerg <Item Name="PointeeType">PointeeType</Item> 151 1.1 joerg </Expand> 152 1.1 joerg </Type> 153 1.1 joerg <Type Name="clang::RValueReferenceType"> 154 1.1 joerg <DisplayString>{((clang::ReferenceType *)this)->PointeeType,view(cpp)} &&</DisplayString> 155 1.1 joerg <Expand> 156 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 157 1.1 joerg <Item Name="PointeeType">PointeeType</Item> 158 1.1 joerg </Expand> 159 1.1 joerg </Type> 160 1.1 joerg <Type Name="clang::AttributedType"> 161 1.1 joerg <DisplayString>{ModifiedType} Attribute={(clang::AttributedType::Kind)AttributedTypeBits.AttrKind}</DisplayString> 162 1.1 joerg </Type> 163 1.1 joerg 164 1.1 joerg <!-- Unfortunately, Visual Studio has trouble seeing the PointerBitMask member PointerIntUnion, so I hardwire it to 2 bits--> 165 1.1 joerg <Type Name="clang::DeclContext"> 166 1.1 joerg <DisplayString>{(clang::Decl::Kind)DeclContextBits.DeclKind,en}Decl</DisplayString> 167 1.1 joerg <Expand> 168 1.1 joerg <Item Name="DeclKind">(clang::Decl::Kind)DeclContextBits.DeclKind,en</Item> 169 1.1 joerg <Synthetic Name="Members"> 170 1.1 joerg <DisplayString></DisplayString> 171 1.1 joerg <Expand> 172 1.1 joerg <LinkedListItems> 173 1.1 joerg <HeadPointer>FirstDecl</HeadPointer> 174 1.1 joerg <NextPointer>(clang::Decl *)(NextInContextAndBits.Value & ~3)</NextPointer> 175 1.1 joerg <ValueNode>*this</ValueNode> 176 1.1 joerg </LinkedListItems> 177 1.1 joerg </Expand> 178 1.1 joerg </Synthetic> 179 1.1 joerg </Expand> 180 1.1 joerg </Type> 181 1.1 joerg <Type Name="clang::FieldDecl"> 182 1.1 joerg <DisplayString>Field {{{*(clang::DeclaratorDecl *)this,view(cpp)nd}}}</DisplayString> 183 1.1 joerg </Type> 184 1.1 joerg <Type Name="clang::CXXMethodDecl"> 185 1.1 joerg <DisplayString IncludeView="cpp">{*(clang::FunctionDecl *)this,nd}</DisplayString> 186 1.1 joerg <DisplayString>Method {{{*this,view(cpp)}}}</DisplayString> 187 1.1 joerg </Type> 188 1.1 joerg <Type Name="clang::CXXConstructorDecl"> 189 1.1 joerg <DisplayString>Constructor {{{Name,view(cpp)}({*(clang::FunctionDecl *)this,view(parm0)nd})}}</DisplayString> 190 1.1 joerg </Type> 191 1.1 joerg <Type Name="clang::CXXDestructorDecl"> 192 1.1 joerg <DisplayString>Destructor {{~{Name,view(cpp)}()}}</DisplayString> 193 1.1 joerg </Type> 194 1.1 joerg <Type Name="clang::TemplateTypeParmDecl"> 195 1.1 joerg <DisplayString IncludeView="TorC" Condition="Typename">typename</DisplayString> 196 1.1 joerg <DisplayString IncludeView="TorC" Condition="!Typename">class</DisplayString> 197 1.1 joerg <DisplayString IncludeView="MaybeEllipses" Condition="TypeForDecl == nullptr">(not yet known if parameter pack) </DisplayString> 198 1.1 joerg <DisplayString IncludeView="MaybeEllipses" Condition="((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase *)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType))->CanTTPTInfo.ParameterPack">...</DisplayString> 199 1.1 joerg <DisplayString IncludeView="MaybeEllipses" Condition="!((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase *)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType))->CanTTPTInfo.ParameterPack"></DisplayString> 200 1.1 joerg <DisplayString IncludeView="DefaultArg" Condition="(DefaultArgument.ValueOrInherited.Val.Value&3LL) == 0">{(TypeSourceInfo *)(DefaultArgument.ValueOrInherited.Val.Value&~3LL),view(cpp)}</DisplayString> 201 1.1 joerg <DisplayString IncludeView="DefaultArg">{{InheritedInitializer}}</DisplayString> 202 1.1 joerg <DisplayString IncludeView="Initializer" Condition="DefaultArgument.ValueOrInherited.Val.Value&~3LL">= {this,view(DefaultArg)na}</DisplayString> 203 1.1 joerg <DisplayString IncludeView="Initializer"></DisplayString> 204 1.1 joerg <DisplayString>{*this,view(TorC)} {*this,view(MaybeEllipses)}{Name,view(cpp)} {this,view(Initializer)na}</DisplayString> 205 1.1 joerg </Type> 206 1.1 joerg <Type Name="clang::TemplateDecl"> 207 1.1 joerg <DisplayString IncludeView="cpp">{*TemplatedDecl,view(cpp)}</DisplayString> 208 1.1 joerg <DisplayString>template{TemplateParams,na} {*TemplatedDecl};</DisplayString> 209 1.1 joerg <Expand> 210 1.1 joerg <Item Name="TemplateParams">TemplateParams,na</Item> 211 1.1 joerg <Item Name="TemplatedDecl">TemplatedDecl,na</Item> 212 1.1 joerg </Expand> 213 1.1 joerg </Type> 214 1.1 joerg <!-- Unfortunately, visualization of PointerIntPair<PointerUnion> doesn't work due to limitations in natvis, so we will barehad it--> 215 1.1 joerg <Type Name="clang::TypedefNameDecl"> 216 1.1 joerg <DisplayString Condition="(MaybeModedTInfo.Value & 4)==0" IncludeView="type">{(clang::TypeSourceInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na}</DisplayString> 217 1.1 joerg <DisplayString Condition="(MaybeModedTInfo.Value & 4)!=0" IncludeView="type">{(clang::TypedefNameDecl::ModedTInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na}</DisplayString> 218 1.1 joerg <DisplayString IncludeView="name">{(TypeDecl *)this,view(cpp)nand}</DisplayString> 219 1.1 joerg <DisplayString>typedef {this,view(type)na} {this,view(name)na};</DisplayString> 220 1.1 joerg <Expand> 221 1.1 joerg <Item Name="IsTransparent" Condition="(MaybeModedTInfo.Value & 1)==0">"Not yet calculated",sb</Item> 222 1.1 joerg <Item Name="IsTransparent" Condition="(MaybeModedTInfo.Value & 1)!=0">(bool)(MaybeModedTInfo.Value & 2)</Item> 223 1.1 joerg <Item Name="TypeSourceInfo" Condition="(MaybeModedTInfo.Value & 4)==0">(clang::TypeSourceInfo *)(MaybeModedTInfo.Value & ~7LL)</Item> 224 1.1 joerg <Item Name="ModedTInfo" Condition="(MaybeModedTInfo.Value & 4)!=0">(clang::TypedefNameDecl::ModedTInfo *)(MaybeModedTInfo.Value & ~7LL)</Item> 225 1.1 joerg <ExpandedItem>(TypeDecl *)this,nd</ExpandedItem> 226 1.1 joerg </Expand> 227 1.1 joerg </Type> 228 1.1 joerg <Type Name="clang::TypeAliasDecl"> 229 1.1 joerg <DisplayString IncludeView="cpp">{(TypedefNameDecl *)this,view(name)nand}</DisplayString> 230 1.1 joerg <DisplayString>using {(TypedefNameDecl *)this,view(name)nand} = {(TypedefNameDecl *)this,view(type)nand}</DisplayString> 231 1.1 joerg </Type> 232 1.1 joerg <Type Name="clang::AssumedTemplateStorage"> 233 1.1 joerg <DisplayString>{Name}</DisplayString> 234 1.1 joerg </Type> 235 1.1 joerg <Type Name="clang::UncommonTemplateNameStorage::BitsTag"> 236 1.1 joerg <DisplayString>Kind={(UncommonTemplateNameStorage::Kind)Kind,en}, Size={Size}</DisplayString> 237 1.1 joerg <Expand> 238 1.1 joerg <Item Name="Kind">(UncommonTemplateNameStorage::Kind)Kind</Item> 239 1.1 joerg <Item Name="Size">Size</Item> 240 1.1 joerg </Expand> 241 1.1 joerg </Type> 242 1.1 joerg <Type Name="clang::UncommonTemplateNameStorage"> 243 1.1 joerg <DisplayString IncludeView="cmn">{Bits},</DisplayString> 244 1.1 joerg <DisplayString Condition="Bits.Kind==UncommonTemplateNameStorage::Overloaded">{this,view(cmn)na},{(OverloadedTemplateStorage*)this,na}</DisplayString> 245 1.1 joerg <DisplayString Condition="Bits.Kind==UncommonTemplateNameStorage::Assumed">{this,view(cmn)na},{(AssumedTemplateStorage*)this,na}</DisplayString> 246 1.1 joerg <DisplayString Condition="Bits.Kind==UncommonTemplateNameStorage::SubstTemplateTemplateParm">{this,view(cmn)na},{(SubstTemplateTemplateParmStorage*)this,na}</DisplayString> 247 1.1 joerg <DisplayString Condition="Bits.Kind==UncommonTemplateNameStorage::SubstTemplateTemplateParmPack">{this,view(cmn)na},{(SubstTemplateTemplateParmPackStorage*)this,na}</DisplayString> 248 1.1 joerg <DisplayString>{this,view(cmn)na}</DisplayString> 249 1.1 joerg <Expand> 250 1.1 joerg <Item Name="Bits">Bits</Item> 251 1.1 joerg <ExpandedItem Condition="Bits.Kind==UncommonTemplateNameStorage::Overloaded">(OverloadedTemplateStorage*)this</ExpandedItem> 252 1.1 joerg <ExpandedItem Condition="Bits.Kind==UncommonTemplateNameStorage::Assumed">(AssumedTemplateStorage*)this</ExpandedItem> 253 1.1 joerg <ExpandedItem Condition="Bits.Kind==UncommonTemplateNameStorage::SubstTemplateTemplateParm">(SubstTemplateTemplateParmStorage*)this</ExpandedItem> 254 1.1 joerg <ExpandedItem Condition="Bits.Kind==UncommonTemplateNameStorage::SubstTemplateTemplateParmPack">(SubstTemplateTemplateParmPackStorage*)this</ExpandedItem> 255 1.1 joerg </Expand> 256 1.1 joerg </Type> 257 1.1 joerg <!-- clang::TemplateName::StorageType --> 258 1.1 joerg <Type Name="llvm::PointerUnion<clang::TemplateDecl *, clang::UncommonTemplateNameStorage *, 259 1.1 joerg clang::QualifiedTemplateName *, clang::DependentTemplateName *>"> 260 1.1 joerg <!-- Expand this out by hand to get cpp view --> 261 1.1 joerg <DisplayString Condition="(Val.Value &3) == 0" IncludeView="cpp"> 262 1.1 joerg {(clang::TemplateDecl *)(Val.Value & ~3LL),view(cpp)na} 263 1.1 joerg </DisplayString> 264 1.1 joerg <DisplayString Condition="(Val.Value &3) == 0"> 265 1.1 joerg {(clang::TemplateDecl *)(Val.Value & ~3LL),na} 266 1.1 joerg </DisplayString> 267 1.1 joerg <DisplayString Condition="(Val.Value &3) == 1" IncludeView="cpp"> 268 1.1 joerg {(clang::UncommonTemplateNameStorage *)(Val.Value & ~3LL),view(cpp)na} 269 1.1 joerg </DisplayString> 270 1.1 joerg <DisplayString Condition="(Val.Value &3) == 1"> 271 1.1 joerg {(clang::UncommonTemplateNameStorage *)(Val.Value & ~3LL),na} 272 1.1 joerg </DisplayString> 273 1.1 joerg <DisplayString Condition="(Val.Value &3) == 2" IncludeView="cpp"> 274 1.1 joerg {(clang::QualifiedTemplateName *)(Val.Value & ~3LL),view(cpp)na} 275 1.1 joerg </DisplayString> 276 1.1 joerg <DisplayString Condition="(Val.Value &3) == 2"> 277 1.1 joerg {(clang::QualifiedTemplateName *)(Val.Value & ~3LL),na} 278 1.1 joerg </DisplayString> 279 1.1 joerg <DisplayString Condition="(Val.Value &3) == 3" IncludeView="cpp"> 280 1.1 joerg {(clang::DependentTemplateName *)(Val.Value & ~3LL),view(cpp)na} 281 1.1 joerg </DisplayString> 282 1.1 joerg <DisplayString Condition="(Val.Value &3) == 3"> 283 1.1 joerg {(clang::DependentTemplateName *)(Val.Value & ~3LL),na} 284 1.1 joerg </DisplayString> 285 1.1 joerg <Expand> 286 1.1 joerg <Item Name="[Holds]" Condition="(Val.Value &3) == 0">"TemplateDecl",s8b</Item> 287 1.1 joerg <Item Name="[Ptr]" Optional="true" Condition="(Val.Value &3) == 0"> 288 1.1 joerg (clang::TemplateDecl *)(Val.Value & ~3LL) 289 1.1 joerg </Item> 290 1.1 joerg <Item Name="[Holds]" Condition="(Val.Value &3) == 1">"UncommonTemplateNameStorage",s8b</Item> 291 1.1 joerg <Item Name="[Ptr]" Optional="true" Condition="(Val.Value &3) == 1"> 292 1.1 joerg (clang::UncommonTemplateNameStorage *)(Val.Value & ~3LL) 293 1.1 joerg </Item> 294 1.1 joerg <Item Name="[Holds]" Condition="(Val.Value &3) == 2">"QualifiedTemplateName",s8b</Item> 295 1.1 joerg <Item Name="[Ptr]" Optional="true" Condition="(Val.Value &3) == 2"> 296 1.1 joerg (clang::QualifiedTemplateName *)(Val.Value & ~3LL) 297 1.1 joerg </Item> 298 1.1 joerg <Item Name="[Holds]" Condition="(Val.Value &3) == 3">"DependentTemplateName",s8b</Item> 299 1.1 joerg <Item Name="[Ptr]" Optional="true" Condition="(Val.Value &3) == 3"> 300 1.1 joerg (clang::DependentTemplateName *)(Val.Value & ~3LL) 301 1.1 joerg </Item> 302 1.1 joerg <Item Name="[Val]">Val</Item> 303 1.1 joerg 304 1.1 joerg </Expand> 305 1.1 joerg </Type> 306 1.1 joerg <Type Name="clang::TemplateName"> 307 1.1 joerg <DisplayString IncludeView="cpp">{Storage,view(cpp)na}</DisplayString> 308 1.1 joerg <DisplayString>{Storage,na}</DisplayString> 309 1.1 joerg <Expand> 310 1.1 joerg <ExpandedItem>Storage</ExpandedItem> 311 1.1 joerg </Expand> 312 1.1 joerg </Type> 313 1.1 joerg <Type Name="clang::NamedDecl" > 314 1.1 joerg <DisplayString IncludeView="cpp">{Name,view(cpp)}</DisplayString> 315 1.1 joerg <DisplayString>{Name}</DisplayString> 316 1.1 joerg </Type> 317 1.1 joerg <Type Name="clang::TagDecl"> 318 1.1 joerg <DisplayString IncludeView="implicit" Condition="Implicit">implicit{" ",sb}</DisplayString> 319 1.1 joerg <DisplayString IncludeView="implicit"></DisplayString> 320 1.1 joerg <DisplayString IncludeView="modifiers">{*this,view(implicit)nd}</DisplayString> 321 1.1 joerg <DisplayString IncludeView="cpp">{*this,view(modifiers)}{Name,view(cpp)}</DisplayString> 322 1.1 joerg <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Struct">{*this,view(modifiers)nd}struct {Name,view(cpp)}</DisplayString> 323 1.1 joerg <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Interface">{*this,view(modifiers)nd}interface {Name,view(cpp)}</DisplayString> 324 1.1 joerg <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Union">{*this,view(modifiers)nd}union {Name,view(cpp)}</DisplayString> 325 1.1 joerg <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Class">{*this,view(modifiers)nd}class {Name,view(cpp)}</DisplayString> 326 1.1 joerg <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Enum">{*this,view(modifiers)nd}enum {Name,view(cpp)}</DisplayString> 327 1.1 joerg <Expand> 328 1.1 joerg <ExpandedItem>(clang::DeclContext *)this</ExpandedItem> 329 1.1 joerg </Expand> 330 1.1 joerg </Type> 331 1.1 joerg <Type Name="clang::TagType"> 332 1.1 joerg <DisplayString IncludeView="cpp">{decl,view(cpp)na}</DisplayString> 333 1.1 joerg <DisplayString>{*decl}</DisplayString> 334 1.1 joerg <Expand> 335 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 336 1.1 joerg <Item Name="decl">decl</Item> 337 1.1 joerg </Expand> 338 1.1 joerg </Type> 339 1.1 joerg <Type Name="clang::RecordType"> 340 1.1 joerg <DisplayString IncludeView="cpp">{(clang::TagType *)this,view(cpp)na}</DisplayString> 341 1.1 joerg <DisplayString>{(clang::TagType *)this,na}</DisplayString> 342 1.1 joerg <Expand> 343 1.1 joerg <Item Name="TagType">*(clang::TagType *)this</Item> 344 1.1 joerg </Expand> 345 1.1 joerg </Type> 346 1.1 joerg <Type Name="clang::SubstTemplateTypeParmType"> 347 1.1 joerg <DisplayString>{{{*Replaced,view(cpp)} <= {CanonicalType,view(cpp)}}}</DisplayString> 348 1.1 joerg <Expand> 349 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 350 1.1 joerg <Item Name="Replaced">*Replaced</Item> 351 1.1 joerg </Expand> 352 1.1 joerg </Type> 353 1.1 joerg <!-- We only show the first 5 parameter types in the display string (can't figure out how to loop in DisplayString) 354 1.1 joerg but the expansion has all parameters --> 355 1.1 joerg <Type Name="clang::FunctionProtoType"> 356 1.1 joerg <DisplayString IncludeView="left" Condition="FunctionTypeBits.HasTrailingReturn"></DisplayString> 357 1.1 joerg <DisplayString IncludeView="left">{ResultType,view(cpp)}</DisplayString> 358 1.1 joerg <DisplayString IncludeView="parm0" Condition="FunctionTypeBits.NumParams==0"></DisplayString> 359 1.1 joerg <DisplayString IncludeView="parm0">{*(clang::QualType *)(this+1),view(cpp)}{*this,view(parm1)}</DisplayString> 360 1.1 joerg <DisplayString IncludeView="parm1" Condition="FunctionTypeBits.NumParams==1"></DisplayString> 361 1.1 joerg <DisplayString IncludeView="parm1">, {*((clang::QualType *)(this+1)+1),view(cpp)}{*this,view(parm2)}</DisplayString> 362 1.1 joerg <DisplayString IncludeView="parm2" Condition="FunctionTypeBits.NumParams==2"></DisplayString> 363 1.1 joerg <DisplayString IncludeView="parm2">, {*((clang::QualType *)(this+1)+2),view(cpp)}{*this,view(parm3)}</DisplayString> 364 1.1 joerg <DisplayString IncludeView="parm3" Condition="FunctionTypeBits.NumParams==3"></DisplayString> 365 1.1 joerg <DisplayString IncludeView="parm3">, {*((clang::QualType *)(this+1)+3),view(cpp)}{*this,view(parm4)}</DisplayString> 366 1.1 joerg <DisplayString IncludeView="parm4" Condition="FunctionTypeBits.NumParams==4"></DisplayString> 367 1.1 joerg <DisplayString IncludeView="parm4">, {*((clang::QualType *)(this+1)+4),view(cpp)}{*this,view(parm5)}</DisplayString> 368 1.1 joerg <DisplayString IncludeView="parm5" Condition="FunctionTypeBits.NumParams==5"></DisplayString> 369 1.1 joerg <DisplayString IncludeView="parm5">, /* expand for more params */</DisplayString> 370 1.1 joerg <DisplayString IncludeView="right" Condition="FunctionTypeBits.HasTrailingReturn">({*this,view(parm0)}) -> {ResultType,view(cpp)}</DisplayString> 371 1.1 joerg <DisplayString IncludeView="right">({*this,view(parm0)})</DisplayString> 372 1.1 joerg <DisplayString>{this,view(left)na}{this,view(right)na}</DisplayString> 373 1.1 joerg <Expand> 374 1.1 joerg <Item Name="ResultType">ResultType</Item> 375 1.1 joerg <Synthetic Name="Parameter Types"> 376 1.1 joerg <DisplayString>{*this,view(parm0)}</DisplayString> 377 1.1 joerg <Expand> 378 1.1 joerg <ArrayItems> 379 1.1 joerg <Size>FunctionTypeBits.NumParams</Size> 380 1.1 joerg <ValuePointer>(clang::QualType *)(this+1)</ValuePointer> 381 1.1 joerg </ArrayItems> 382 1.1 joerg </Expand> 383 1.1 joerg </Synthetic> 384 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 385 1.1 joerg </Expand> 386 1.1 joerg </Type> 387 1.1 joerg 388 1.1 joerg <Type Name="clang::AdjustedType"> 389 1.1 joerg <DisplayString>{OriginalTy} adjusted to {AdjustedTy}</DisplayString> 390 1.1 joerg <Expand> 391 1.1 joerg <Item Name="OriginalTy">OriginalTy</Item> 392 1.1 joerg <Item Name="AdjustedTy">AdjustedTy</Item> 393 1.1 joerg </Expand> 394 1.1 joerg </Type> 395 1.1 joerg <Type Name="clang::DecayedType"> 396 1.1 joerg <DisplayString IncludeView="left">{OriginalTy,view(left)}</DisplayString> 397 1.1 joerg <DisplayString IncludeView="right">{OriginalTy,view(right)}</DisplayString> 398 1.1 joerg <DisplayString>{OriginalTy}</DisplayString> 399 1.1 joerg <Expand> 400 1.1 joerg <ExpandedItem>(clang::AdjustedType *)this</ExpandedItem> 401 1.1 joerg </Expand> 402 1.1 joerg </Type> 403 1.1 joerg <Type Name="clang::TemplateTypeParmType"> 404 1.1 joerg <DisplayString IncludeView="cpp" Condition="CanonicalType.Value.Value != this">{TTPDecl->Name,view(cpp)}</DisplayString> 405 1.1 joerg <DisplayString Condition="CanonicalType.Value.Value != this">Non-canonical: {*TTPDecl}</DisplayString> 406 1.1 joerg <DisplayString>Canonical: {CanTTPTInfo}</DisplayString> 407 1.1 joerg <Expand> 408 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 409 1.1 joerg </Expand> 410 1.1 joerg </Type> 411 1.1 joerg <Type Name="clang::InjectedClassNameType"> 412 1.1 joerg <DisplayString>{Decl,view(cpp)}</DisplayString> 413 1.1 joerg <Expand> 414 1.1 joerg <Item Name="Decl">Decl</Item> 415 1.1 joerg <Item Name="InjectedType">InjectedType</Item> 416 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 417 1.1 joerg </Expand> 418 1.1 joerg </Type> 419 1.1 joerg <Type Name="clang::DependentNameType"> 420 1.1 joerg <DisplayString>{NNS}{Name,view(cpp)na}</DisplayString> 421 1.1 joerg <Expand> 422 1.1 joerg <Item Name="NNS">NNS</Item> 423 1.1 joerg <Item Name="Name">Name</Item> 424 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 425 1.1 joerg </Expand> 426 1.1 joerg </Type> 427 1.1 joerg <Type Name="clang::NestedNameSpecifier"> 428 1.1 joerg <DisplayString Condition="!Specifier"></DisplayString> 429 1.1 joerg <DisplayString Condition="((Prefix.Value>>1)&3) == 0">{(IdentifierInfo*)Specifier,view(cpp)na}::</DisplayString> 430 1.1 joerg <DisplayString Condition="((Prefix.Value>>1)&3) == 1">{(NamedDecl*)Specifier,view(cpp)na}::</DisplayString> 431 1.1 joerg <DisplayString Condition="((Prefix.Value>>1)&2) == 2">{(Type*)Specifier,view(cpp)na}::</DisplayString> 432 1.1 joerg <Expand> 433 1.1 joerg <Item Name="Kind">(NestedNameSpecifier::StoredSpecifierKind)((Prefix.Value>>1)&3)</Item> 434 1.1 joerg </Expand> 435 1.1 joerg </Type> 436 1.1 joerg <Type Name="clang::PackExpansionType"> 437 1.1 joerg <DisplayString>{Pattern}</DisplayString> 438 1.1 joerg <Expand> 439 1.1 joerg <Item Name="Pattern">Pattern</Item> 440 1.1 joerg <Item Name="NumExpansions">NumExpansions</Item> 441 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 442 1.1 joerg </Expand> 443 1.1 joerg </Type> 444 1.1 joerg <Type Name="clang::QualType"> 445 1.1 joerg <!-- When VS2013 support is deprecated, change 4 to clang::TypeAlignmentInBits (not properly recognized by VS2013) --> 446 1.1 joerg <DisplayString IncludeView="poly">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(poly)}{*this,view(fastQuals)}</DisplayString> 447 1.1 joerg <DisplayString IncludeView="cpp">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(cpp)}{*this,view(fastQuals)}</DisplayString> 448 1.1 joerg <DisplayString IncludeView="left">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(left)}{*this,view(fastQuals)}</DisplayString> 449 1.1 joerg <DisplayString IncludeView="right">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(right)}{*this,view(fastQuals)}</DisplayString> 450 1.1 joerg <!-- For the Fast Qualifiers, it is simpler (and probably more efficient) just to list all 8 cases than create 451 1.1 joerg views for each qualifier. TODO: Non-fast qualifiers --> 452 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==0"></DisplayString> 453 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==1">{" ",sb}const</DisplayString> 454 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==2">{" ",sb}restrict</DisplayString> 455 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==3">{" ",sb}const restrict</DisplayString> 456 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==4">{" ",sb}volatile</DisplayString> 457 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==5">{" ",sb}const volatile</DisplayString> 458 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==6">{" ",sb}volatile restrict</DisplayString> 459 1.1 joerg <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==7">{" ",sb}const volatile restrict</DisplayString> 460 1.1 joerg <DisplayString IncludeView="fastQuals">Cannot visualize non-fast qualifiers</DisplayString> 461 1.1 joerg <DisplayString Condition="(uintptr_t)Value.Value == 0">Null</DisplayString> 462 1.1 joerg <DisplayString>{((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,na}{*this,view(fastQuals)}</DisplayString> 463 1.1 joerg <Expand> 464 1.1 joerg <Item Name="Fast Quals">*this,view(fastQuals)</Item> 465 1.1 joerg <ExpandedItem>((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType</ExpandedItem> 466 1.1 joerg </Expand> 467 1.1 joerg </Type> 468 1.1 joerg <Type Name="clang::LocInfoType"> 469 1.1 joerg <DisplayString IncludeView="cpp">{DeclInfo,view(cpp)na}</DisplayString> 470 1.1 joerg <DisplayString>{DeclInfo,na}</DisplayString> 471 1.1 joerg <Expand> 472 1.1 joerg <Item Name="DeclInfo">DeclInfo</Item> 473 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 474 1.1 joerg </Expand> 475 1.1 joerg </Type> 476 1.1 joerg <Type Name="clang::TypeSourceInfo"> 477 1.1 joerg <DisplayString IncludeView="cpp">{Ty,view(cpp)}</DisplayString> 478 1.1 joerg <DisplayString>{Ty}</DisplayString> 479 1.1 joerg <Expand> 480 1.1 joerg <ExpandedItem>Ty</ExpandedItem> 481 1.1 joerg </Expand> 482 1.1 joerg </Type> 483 1.1 joerg <Type Name="clang::TypeLoc"> 484 1.1 joerg <DisplayString>{(QualType *)&Ty,na}</DisplayString> 485 1.1 joerg <Expand> 486 1.1 joerg <Item Name="Ty">(QualType *)&Ty</Item> 487 1.1 joerg <Item Name="Data">Data</Item> 488 1.1 joerg </Expand> 489 1.1 joerg </Type> 490 1.1 joerg <Type Name="clang::TypeLocBuilder"> 491 1.1 joerg <DisplayString Optional="true" Condition="LastTy.Value.Value==0">Not building anything</DisplayString> 492 1.1 joerg <DisplayString Optional="true">Building a {LastTy}</DisplayString> 493 1.1 joerg </Type> 494 1.1 joerg <Type Name="clang::TemplateArgumentLoc"> 495 1.1 joerg <DisplayString IncludeView="cpp">{Argument,view(cpp)}</DisplayString> 496 1.1 joerg <DisplayString>{Argument}</DisplayString> 497 1.1 joerg </Type> 498 1.1 joerg <Type Name="clang::TemplateArgument"> 499 1.1 joerg <DisplayString IncludeView="cpp" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">{*(clang::QualType *)&TypeOrValue.V,view(cpp)}</DisplayString> 500 1.1 joerg <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en} template argument: {*(clang::QualType *)&TypeOrValue.V}</DisplayString> 501 1.1 joerg <DisplayString IncludeView="arg0" Condition="Args.NumArgs==0"></DisplayString> 502 1.1 joerg <DisplayString IncludeView="arg0">{Args.Args[0]}{*this,view(arg1)}</DisplayString> 503 1.1 joerg <DisplayString IncludeView="arg1" Condition="Args.NumArgs==1"></DisplayString> 504 1.1 joerg <DisplayString IncludeView="arg1">, {Args.Args[1]}{*this,view(arg2)}</DisplayString> 505 1.1 joerg <DisplayString IncludeView="arg2" Condition="Args.NumArgs==2"></DisplayString> 506 1.1 joerg <DisplayString IncludeView="arg2">, {Args.Args[2]}, ...</DisplayString> 507 1.1 joerg <DisplayString IncludeView="arg0cpp" Condition="Args.NumArgs==0"></DisplayString> 508 1.1 joerg <DisplayString IncludeView="arg0cpp">{Args.Args[0],view(cpp)}{*this,view(arg1cpp)}</DisplayString> 509 1.1 joerg <DisplayString IncludeView="arg1cpp" Condition="Args.NumArgs==1"></DisplayString> 510 1.1 joerg <DisplayString IncludeView="arg1cpp">, {Args.Args[1],view(cpp)}{*this,view(arg2cpp)}</DisplayString> 511 1.1 joerg <DisplayString IncludeView="arg2cpp" Condition="Args.NumArgs==2"></DisplayString> 512 1.1 joerg <DisplayString IncludeView="arg2cpp">, {Args.Args[2],view(cpp)}, ...</DisplayString> 513 1.1 joerg <DisplayString IncludeView="cpp" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">{*this,view(arg0cpp)}</DisplayString> 514 1.1 joerg <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">{*this,view(arg0)}</DisplayString> 515 1.1 joerg <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Expression">{(clang::Expr *)TypeOrValue.V,view(cpp)na}</DisplayString> 516 1.1 joerg <DisplayString>{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en}</DisplayString> 517 1.1 joerg <Expand> 518 1.1 joerg <Item Name="QualType" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">*(clang::QualType *)&TypeOrValue.V</Item> 519 1.1 joerg <Item Name="Expression" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Expression">(clang::Expr *)TypeOrValue.V</Item> 520 1.1 joerg <ArrayItems Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack"> 521 1.1 joerg <Size>Args.NumArgs</Size> 522 1.1 joerg <ValuePointer>Args.Args</ValuePointer> 523 1.1 joerg </ArrayItems> 524 1.1 joerg <!-- TODO: Other kinds--> 525 1.1 joerg </Expand> 526 1.1 joerg </Type> 527 1.1 joerg <Type Name="clang::TemplateArgumentListInfo"> 528 1.1 joerg <DisplayString IncludeView ="elt0" Condition="Arguments.Size == 0"></DisplayString> 529 1.1 joerg <DisplayString IncludeView ="elt0">{((TemplateArgumentLoc*)Arguments.BeginX)[0],view(cpp)}{*this,view(elt1)}</DisplayString> 530 1.1 joerg <DisplayString IncludeView ="elt1" Condition="Arguments.Size == 1"></DisplayString> 531 1.1 joerg <DisplayString IncludeView ="elt1">, {((TemplateArgumentLoc*)Arguments.BeginX)[1],view(cpp)}{*this,view(elt2)}</DisplayString> 532 1.1 joerg <DisplayString IncludeView ="elt2" Condition="Arguments.Size == 2"></DisplayString> 533 1.1 joerg <DisplayString IncludeView ="elt2">, {((TemplateArgumentLoc*)Arguments.BeginX)[2],view(cpp)}{*this,view(elt3)}</DisplayString> 534 1.1 joerg <DisplayString IncludeView ="elt3" Condition="Arguments.Size == 3"></DisplayString> 535 1.1 joerg <DisplayString IncludeView ="elt3">, {((TemplateArgumentLoc*)Arguments.BeginX)[3],view(cpp)}{*this,view(elt4)}</DisplayString> 536 1.1 joerg <DisplayString IncludeView ="elt4" Condition="Arguments.Size == 4"></DisplayString> 537 1.1 joerg <DisplayString IncludeView ="elt4">, ...</DisplayString> 538 1.1 joerg <DisplayString Condition="Arguments.Size == 0">empty</DisplayString> 539 1.1 joerg <DisplayString Condition="Arguments.Size != 0"><{*this,view(elt0)}></DisplayString> 540 1.1 joerg <DisplayString>Uninitialized</DisplayString> 541 1.1 joerg </Type> 542 1.1 joerg <Type Name="clang::TemplateArgumentList"> 543 1.1 joerg <DisplayString IncludeView="arg0" Condition="NumArguments==0"></DisplayString> 544 1.1 joerg <DisplayString IncludeView="arg0">{Arguments[0],view(cpp)}{*this,view(arg1)}</DisplayString> 545 1.1 joerg <DisplayString IncludeView="arg1" Condition="NumArguments==1"></DisplayString> 546 1.1 joerg <DisplayString IncludeView="arg1">, {Arguments[1],view(cpp)}{*this,view(arg2)}</DisplayString> 547 1.1 joerg <DisplayString IncludeView="arg2" Condition="NumArguments==2"></DisplayString> 548 1.1 joerg <DisplayString IncludeView="arg2">, {Arguments[1],view(cpp)}, ...</DisplayString> 549 1.1 joerg <DisplayString><{*this,view(arg0)}></DisplayString> 550 1.1 joerg <Expand> 551 1.1 joerg <Item Name="NumArguments">NumArguments</Item> 552 1.1 joerg <ArrayItems> 553 1.1 joerg <Size>NumArguments</Size> 554 1.1 joerg <ValuePointer>Arguments</ValuePointer> 555 1.1 joerg </ArrayItems> 556 1.1 joerg </Expand> 557 1.1 joerg </Type> 558 1.1 joerg <Type Name="llvm::ArrayRef<clang::TemplateArgument>"> 559 1.1 joerg <DisplayString IncludeView="arg0" Condition="Length==0"></DisplayString> 560 1.1 joerg <DisplayString IncludeView="arg0">{Data[0],view(cpp)}{*this,view(arg1)}</DisplayString> 561 1.1 joerg <DisplayString IncludeView="arg1" Condition="Length==1"></DisplayString> 562 1.1 joerg <DisplayString IncludeView="arg1">, {Data[1],view(cpp)}{*this,view(arg2)}</DisplayString> 563 1.1 joerg <DisplayString IncludeView="arg2" Condition="Length==2"></DisplayString> 564 1.1 joerg <DisplayString IncludeView="arg2">, {Data[2],view(cpp)}, ...</DisplayString> 565 1.1 joerg <DisplayString><{*this,view(arg0)}></DisplayString> 566 1.1 joerg <Expand> 567 1.1 joerg <Item Name="Length">Length</Item> 568 1.1 joerg <Synthetic Name="Data"> 569 1.1 joerg <Expand> 570 1.1 joerg <ArrayItems> 571 1.1 joerg <Size>Length</Size> 572 1.1 joerg <ValuePointer>Data</ValuePointer> 573 1.1 joerg </ArrayItems> 574 1.1 joerg </Expand> 575 1.1 joerg </Synthetic> 576 1.1 joerg </Expand> 577 1.1 joerg </Type> 578 1.1 joerg <Type Name="clang::MultiLevelTemplateArgumentList"> 579 1.1 joerg <DisplayString IncludeView="level0" Condition="(llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.EndX - (llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX==0"></DisplayString> 580 1.1 joerg <DisplayString IncludeView="level0">{((llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX)[0],view(cpp)}{*this,view(level1)}</DisplayString> 581 1.1 joerg <DisplayString IncludeView="level1" Condition="(llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.EndX - (llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX==1"></DisplayString> 582 1.1 joerg <DisplayString IncludeView="level1">::{((llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX)[1],view(cpp)}{*this,view(level2)}</DisplayString> 583 1.1 joerg <DisplayString IncludeView="level2" Condition="(llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.EndX - (llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX==2"></DisplayString> 584 1.1 joerg <DisplayString IncludeView="level2">::{((llvm::ArrayRef<clang::TemplateArgument> *)TemplateArgumentLists.BeginX)[2],view(cpp)}, ...</DisplayString> 585 1.1 joerg <DisplayString>{*this,view(level0)}</DisplayString> 586 1.1 joerg <Expand> 587 1.1 joerg <Item Name="TemplateList">TemplateArgumentLists</Item> 588 1.1 joerg </Expand> 589 1.1 joerg </Type> 590 1.1 joerg <Type Name="clang::ParsedTemplateArgument"> 591 1.1 joerg <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Type" IncludeView="cpp">{(clang::QualType *)Arg,view(cpp)na}</DisplayString> 592 1.1 joerg <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Type">Type template argument: {*(clang::QualType *)Arg}</DisplayString> 593 1.1 joerg <DisplayString Condition="Kind==clang::ParsedTemplateArgument::NonType">Non-type template argument: {*(clang::Expr *)Arg}</DisplayString> 594 1.1 joerg <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Template">Template template argument: {*(clang::TemplateName *)Arg</DisplayString> 595 1.1 joerg <Expand> 596 1.1 joerg <Item Name="Kind">Kind,en</Item> 597 1.1 joerg <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::Type">(clang::QualType *)Arg</Item> 598 1.1 joerg <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::NonType">(clang::Expr *)Arg</Item> 599 1.1 joerg <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::Template">(clang::TemplateName *)Arg</Item> 600 1.1 joerg </Expand> 601 1.1 joerg </Type> 602 1.1 joerg <!-- Builtin types that have C++ keywords are manually displayed as that keyword. Otherwise, just use the enum name --> 603 1.1 joerg <Type Name="clang::BuiltinType"> 604 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Void">void</DisplayString> 605 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Bool">bool</DisplayString> 606 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char_U">char</DisplayString> 607 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UChar">unsigned char</DisplayString> 608 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::WChar_U">wchar_t</DisplayString> 609 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char16">char16_t</DisplayString> 610 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char32">char32_t</DisplayString> 611 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UShort">unsigned short</DisplayString> 612 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UInt">unsigned int</DisplayString> 613 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::ULong">unsigned long</DisplayString> 614 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::ULongLong">unsigned long long</DisplayString> 615 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UInt128">__uint128_t</DisplayString> 616 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char_S">char</DisplayString> 617 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::SChar">signed char</DisplayString> 618 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::WChar_S">wchar_t</DisplayString> 619 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Short">short</DisplayString> 620 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Int">int</DisplayString> 621 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Long">long</DisplayString> 622 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::LongLong">long long</DisplayString> 623 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Int128">__int128_t</DisplayString> 624 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Half">__fp16</DisplayString> 625 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Float">float</DisplayString> 626 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Double">double</DisplayString> 627 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::LongDouble">long double</DisplayString> 628 1.1 joerg <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::NullPtr">nullptr_t</DisplayString> 629 1.1 joerg <DisplayString>{(clang::BuiltinType::Kind)BuiltinTypeBits.Kind, en}</DisplayString> 630 1.1 joerg <Expand> 631 1.1 joerg <Item Name="Kind">(clang::BuiltinType::Kind)BuiltinTypeBits.Kind</Item> 632 1.1 joerg </Expand> 633 1.1 joerg </Type> 634 1.1 joerg 635 1.1 joerg <Type Name="clang::TemplateSpecializationType"> 636 1.1 joerg <DisplayString IncludeView="arg0" Condition="TemplateSpecializationTypeBits.NumArgs==0"></DisplayString> 637 1.1 joerg <DisplayString IncludeView="arg0">{((clang::TemplateArgument *)(this+1))[0],view(cpp)}{*this,view(arg1)}</DisplayString> 638 1.1 joerg <DisplayString IncludeView="arg1" Condition="TemplateSpecializationTypeBits.NumArgs==1"></DisplayString> 639 1.1 joerg <DisplayString IncludeView="arg1">, {((clang::TemplateArgument *)(this+1))[1],view(cpp)}{*this,view(arg2)}</DisplayString> 640 1.1 joerg <DisplayString IncludeView="arg2" Condition="TemplateSpecializationTypeBits.NumArgs==2"></DisplayString> 641 1.1 joerg <DisplayString IncludeView="arg2">, {((clang::TemplateArgument *)(this+1))[2],view(cpp)}{*this,view(arg3)}</DisplayString> 642 1.1 joerg <DisplayString Condition="(Template.Storage.Val.Value & 3) == 0"> 643 1.1 joerg {*((clang::TemplateDecl *)(Template.Storage.Val.Value))->TemplatedDecl,view(cpp)}<{*this,view(arg0)}> 644 1.1 joerg </DisplayString> 645 1.1 joerg <DisplayString>Can't visualize this TemplateSpecializationType</DisplayString> 646 1.1 joerg <Expand> 647 1.1 joerg <Item Name="Template">Template.Storage</Item> 648 1.1 joerg <ArrayItems> 649 1.1 joerg <Size>TemplateSpecializationTypeBits.NumArgs</Size> 650 1.1 joerg <ValuePointer>(clang::TemplateArgument *)(this+1)</ValuePointer> 651 1.1 joerg </ArrayItems> 652 1.1 joerg <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> 653 1.1 joerg </Expand> 654 1.1 joerg </Type> 655 1.1 joerg <Type Name="clang::DeducedType"> 656 1.1 joerg <Expand> 657 1.1 joerg <Item Name="isDeduced">(CanonicalType.Value.Value != this) || TypeBits.Dependent</Item> 658 1.1 joerg <ExpandedItem>*(clang::Type *)this,view(cmn)</ExpandedItem> 659 1.1 joerg </Expand> 660 1.1 joerg </Type> 661 1.1 joerg <Type Name="clang::DeducedTemplateSpecializationType"> 662 1.1 joerg <DisplayString Condition="(CanonicalType.Value.Value != this) || TypeBits.Dependent">{CanonicalType,view(cpp)}</DisplayString> 663 1.1 joerg <DisplayString IncludeView="cpp">{Template,view(cpp)}</DisplayString> 664 1.1 joerg <DisplayString>{Template}</DisplayString> 665 1.1 joerg <Expand> 666 1.1 joerg <Item Name="Template">Template</Item> 667 1.1 joerg <Item Name="Deduced As" Condition="(CanonicalType.Value.Value != this) || TypeBits.Dependent">CanonicalType,view(cpp)</Item> 668 1.1 joerg <ExpandedItem>(clang::DeducedType *)this</ExpandedItem> 669 1.1 joerg <Item Name="Template">Template</Item> 670 1.1 joerg </Expand> 671 1.1 joerg </Type> 672 1.1 joerg <Type Name="clang::ClassTemplateSpecializationDecl"> 673 1.1 joerg <DisplayString>{*(CXXRecordDecl *)this,nd}{*TemplateArgs}</DisplayString> 674 1.1 joerg <Expand> 675 1.1 joerg <ExpandedItem>(CXXRecordDecl *)this,nd</ExpandedItem> 676 1.1 joerg <Item Name="TemplateArgs">TemplateArgs</Item> 677 1.1 joerg </Expand> 678 1.1 joerg </Type> 679 1.1 joerg <Type Name="clang::IdentifierInfo"> 680 1.1 joerg <DisplayString Condition="Entry != 0">{((llvm::StringMapEntry<clang::IdentifierInfo *>*)Entry)+1,sb}</DisplayString> 681 1.1 joerg <Expand> 682 1.1 joerg <Item Condition="Entry != 0" Name="[Identifier]">((llvm::StringMapEntry<clang::IdentifierInfo *>*)Entry)+1,s</Item> 683 1.1 joerg <Item Name="Token Kind">(clang::tok::TokenKind)TokenID</Item> 684 1.1 joerg </Expand> 685 1.1 joerg </Type> 686 1.1 joerg <Type Name="clang::DeclarationName"> 687 1.1 joerg <DisplayString Condition="Ptr == 0" IncludeView="cpp"></DisplayString> 688 1.1 joerg <DisplayString Condition="Ptr == 0">Empty</DisplayString> 689 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredIdentifier" IncludeView="cpp">{*(clang::IdentifierInfo *)(Ptr & ~PtrMask)}</DisplayString> 690 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr & ~PtrMask)})}}</DisplayString> 691 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr & ~PtrMask)})}}</DisplayString> 692 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr & ~PtrMask)})}}</DisplayString> 693 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredCXXConstructorName" IncludeView="cpp">{(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),view(cpp)na}</DisplayString> 694 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredCXXConstructorName">C++ Constructor {{{(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),view(cpp)na}}}</DisplayString> 695 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredCXXDestructorName">C++ Destructor {{*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)}}</DisplayString> 696 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredCXXConversionFunctionName">C++ Conversion function {{*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)}}</DisplayString> 697 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredCXXOperatorName">C++ Operator {{*(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask)}}</DisplayString> 698 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra" 699 1.1 joerg IncludeView="cpp">{*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),view(cpp)}</DisplayString> 700 1.1 joerg <DisplayString Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra">{{Extra ({*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask)})}}</DisplayString> 701 1.1 joerg <Expand> 702 1.1 joerg <Item Name="Kind">StoredNameKind(Ptr & PtrMask),en</Item> 703 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask),na</Item> 704 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask),na</Item> 705 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask),na</Item> 706 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredCXXConstructorName" Name="[C++ Constructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na</Item> 707 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredCXXDestructorName" Name="[C++ Destructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na</Item> 708 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredCXXConversionFunctionName" Name="[C++ Conversion function]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na</Item> 709 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredCXXOperatorName" Name="[C++ Operator]">*(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask),na</Item> 710 1.1 joerg <Item Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),na</Item> 711 1.1 joerg </Expand> 712 1.1 joerg </Type> 713 1.1 joerg <Type Name="clang::detail::DeclarationNameExtra"> 714 1.1 joerg <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName" IncludeView="cpp"> 715 1.1 joerg {(CXXDeductionGuideNameExtra *)this,view(cpp)nand} 716 1.1 joerg </DisplayString> 717 1.1 joerg <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName"> 718 1.1 joerg {(CXXDeductionGuideNameExtra *)this,nand} 719 1.1 joerg </DisplayString> 720 1.1 joerg <DisplayString Condition="ExtraKindOrNumArgs == CXXLiteralOperatorName">C++ Literal operator</DisplayString> 721 1.1 joerg <DisplayString Condition="ExtraKindOrNumArgs == CXXUsingDirective">C++ Using directive</DisplayString> 722 1.1 joerg <DisplayString>{(clang::detail::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{" ",sb}{*this,view(cpp)}</DisplayString> 723 1.1 joerg <Expand> 724 1.1 joerg <ExpandedItem Condition="ExtraKindOrNumArgs == CXXDeductionGuideName">(CXXDeductionGuideNameExtra *)this</ExpandedItem> 725 1.1 joerg <Item Name="ExtraKindOrNumArgs" Condition="ExtraKindOrNumArgs != CXXDeductionGuideName">ExtraKindOrNumArgs</Item> 726 1.1 joerg </Expand> 727 1.1 joerg </Type> 728 1.1 joerg <Type Name="clang::detail::CXXDeductionGuideNameExtra"> 729 1.1 joerg <DisplayString IncludeView="cpp">{Template->TemplatedDecl,view(cpp)}</DisplayString> 730 1.1 joerg <DisplayString>C++ Deduction guide for {Template->TemplatedDecl,view(cpp)na}</DisplayString> 731 1.1 joerg </Type> 732 1.1 joerg <Type Name="clang::detail::CXXSpecialNameExtra"> 733 1.1 joerg <DisplayString IncludeView="cpp">{Type,view(cpp)}</DisplayString> 734 1.1 joerg <DisplayString>{Type}</DisplayString> 735 1.1 joerg </Type> 736 1.1 joerg <Type Name="clang::DeclarationNameInfo"> 737 1.1 joerg <DisplayString>{Name}</DisplayString> 738 1.1 joerg </Type> 739 1.1 joerg <Type Name="clang::TemplateIdAnnotation"> 740 1.1 joerg <DisplayString IncludeView="arg0" Condition="NumArgs==0"></DisplayString> 741 1.1 joerg <DisplayString IncludeView="arg0">{(ParsedTemplateArgument *)(this+1),view(cpp)na}{this,view(arg1)na}</DisplayString> 742 1.1 joerg <DisplayString IncludeView="arg1" Condition="NumArgs==1"></DisplayString> 743 1.1 joerg <DisplayString IncludeView="arg1">, {((ParsedTemplateArgument *)(this+1))+1,view(cpp)na}{this,view(arg2)na}</DisplayString> 744 1.1 joerg <DisplayString IncludeView="arg2" Condition="NumArgs==2"></DisplayString> 745 1.1 joerg <DisplayString IncludeView="arg1">, ...</DisplayString> 746 1.1 joerg <DisplayString>{Name,na}<{this,view(arg0)na}></DisplayString> 747 1.1 joerg <Expand> 748 1.1 joerg <Item Name="Name">Name</Item> 749 1.1 joerg <Synthetic Name="Arguments"> 750 1.1 joerg <DisplayString>{this,view(arg0)na}</DisplayString> 751 1.1 joerg <Expand> 752 1.1 joerg <ArrayItems> 753 1.1 joerg <Size>NumArgs</Size> 754 1.1 joerg <ValuePointer>(ParsedTemplateArgument *)(this+1)</ValuePointer> 755 1.1 joerg </ArrayItems> 756 1.1 joerg </Expand> 757 1.1 joerg </Synthetic> 758 1.1 joerg <Item Name="Operator">Operator</Item> 759 1.1 joerg </Expand> 760 1.1 joerg </Type> 761 1.1 joerg <Type Name="clang::Token"> 762 1.1 joerg <DisplayString Condition="Kind == clang::tok::annot_template_id">{{annot_template_id ({(clang::TemplateIdAnnotation *)(PtrData),na})}}</DisplayString> 763 1.1 joerg <DisplayString Condition="Kind == clang::tok::identifier">{{Identifier ({(clang::IdentifierInfo *)(PtrData),na})}}</DisplayString> 764 1.1 joerg <DisplayString>{(clang::tok::TokenKind)Kind,en}</DisplayString> 765 1.1 joerg </Type> 766 1.1 joerg <Type Name="clang::Lexer"> 767 1.1 joerg <DisplayString>{BufferPtr,nasb}</DisplayString> 768 1.1 joerg </Type> 769 1.1 joerg <Type Name="clang::Preprocessor::IncludeStackInfo"> 770 1.1 joerg <DisplayString Condition="TheLexer._Mypair._Myval2 != 0">{TheLexer._Mypair._Myval2,na}</DisplayString> 771 1.1 joerg <DisplayString Condition="TheTokenLexer._Mypair._Myval2 != 0">Expanding Macro: {TheTokenLexer._Mypair._Myval2,na}</DisplayString> 772 1.1 joerg <DisplayString></DisplayString> 773 1.1 joerg </Type> 774 1.1 joerg <Type Name="clang::Preprocessor"> 775 1.1 joerg <DisplayString IncludeView="cached" Condition="CachedLexPos < CachedTokens.Size"> 776 1.1 joerg [{(Token *)(CachedTokens.BeginX) + CachedLexPos,na}] {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na} 777 1.1 joerg </DisplayString> 778 1.1 joerg <DisplayString IncludeView="cached"> {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}</DisplayString> 779 1.1 joerg <DisplayString Condition="CurLexer._Mypair._Myval2 != 0">{CurLexer._Mypair._Myval2,na}</DisplayString> 780 1.1 joerg <DisplayString Condition="CurTokenLexer._Mypair._Myval2 != 0">Expanding Macro: {CurTokenLexer._Mypair._Myval2,na}</DisplayString> 781 1.1 joerg <!-- Can't use CurLexerKind because natvis sees the type rather than the variable --> 782 1.1 joerg <DisplayString Condition="IncludeMacroStack._Mypair._Myval2._Mylast - IncludeMacroStack._Mypair._Myval2._Myfirst"> 783 1.1 joerg {this,view(cached)} 784 1.1 joerg </DisplayString> 785 1.1 joerg <DisplayString>CLK_LexAfterModuleImport</DisplayString> 786 1.1 joerg </Type> 787 1.1 joerg <Type Name="clang::Parser"> 788 1.1 joerg <DisplayString>[{Tok}] {PP,na}</DisplayString> 789 1.1 joerg </Type> 790 1.1 joerg <Type Name="clang::LambdaIntroducer::LambdaCapture"> 791 1.1 joerg <DisplayString Condition="Kind == LCK_This">this</DisplayString> 792 1.1 joerg <DisplayString Condition="Kind == LCK_StarThis">*this</DisplayString> 793 1.1 joerg <DisplayString Condition="Kind == LCK_ByCopy">{Id}</DisplayString> 794 1.1 joerg <DisplayString Condition="Kind == LCK_ByRef">&{Id}</DisplayString> 795 1.1 joerg <DisplayString>No visualizer for {Kind}</DisplayString> 796 1.1 joerg </Type> 797 1.1 joerg <Type Name="clang::LambdaIntroducer"> 798 1.1 joerg <DisplayString IncludeView="default" Condition="Default==LCD_None"></DisplayString> 799 1.1 joerg <DisplayString IncludeView="default" Condition="Default==LCD_ByCopy">=,</DisplayString> 800 1.1 joerg <DisplayString IncludeView="default" Condition="Default==LCD_ByRef">&,</DisplayString> 801 1.1 joerg <DisplayString IncludeView="capture0" Condition="Captures.Size==0"></DisplayString> 802 1.1 joerg <DisplayString IncludeView="capture0">{(LambdaCapture *)(Captures.BeginX),na}{this,view(capture1)na}</DisplayString> 803 1.1 joerg <DisplayString IncludeView="capture1" Condition="Captures.Size==1"></DisplayString> 804 1.1 joerg <DisplayString IncludeView="capture1">,{(LambdaCapture *)(Captures.BeginX)+1,na}{this,view(capture2)na}</DisplayString> 805 1.1 joerg <DisplayString IncludeView="capture2" Condition="Captures.Size==2"></DisplayString> 806 1.1 joerg <DisplayString IncludeView="capture2">,{(LambdaCapture *)(Captures.BeginX)+2,na}{this,view(capture3)na}</DisplayString> 807 1.1 joerg <DisplayString IncludeView="capture3" Condition="Captures.Size==3"></DisplayString> 808 1.1 joerg <DisplayString IncludeView="capture3">,...</DisplayString> 809 1.1 joerg <DisplayString>[{this,view(default)na}{this,view(capture0)na}]</DisplayString> 810 1.1 joerg </Type> 811 1.1 joerg <Type Name="clang::DeclSpec"> 812 1.1 joerg <DisplayString IncludeView="extra" Condition="TypeSpecType == TST_typename || TypeSpecType == TST_typeofType || TypeSpecType == TST_underlyingType || TypeSpecType == TST_atomic"> 813 1.1 joerg , [{TypeRep}] 814 1.1 joerg </DisplayString> 815 1.1 joerg <DisplayString IncludeView="extra" Condition="TypeSpecType == TST_typeofExpr || TypeSpecType == TST_decltype"> 816 1.1 joerg , [{ExprRep}] 817 1.1 joerg </DisplayString> 818 1.1 joerg <DisplayString IncludeView="extra" Condition="TypeSpecType == TST_enum || TypeSpecType == TST_struct || TypeSpecType == TST_interface || TypeSpecType == TST_union || TypeSpecType == TST_class"> 819 1.1 joerg , [{DeclRep}] 820 1.1 joerg </DisplayString> 821 1.1 joerg <DisplayString IncludeView="extra"></DisplayString> 822 1.1 joerg <DisplayString>[{(clang::DeclSpec::SCS)StorageClassSpec,en}], [{(clang::TypeSpecifierType)TypeSpecType,en}]{this,view(extra)na}</DisplayString> 823 1.1 joerg <Expand> 824 1.1 joerg <Item Name="StorageClassSpec">(clang::DeclSpec::SCS)StorageClassSpec</Item> 825 1.1 joerg <Item Name="TypeSpecType">(clang::TypeSpecifierType)TypeSpecType</Item> 826 1.1 joerg <Item Name="TypeRep" Condition="TypeSpecType == TST_typename || TypeSpecType == TST_typeofType || TypeSpecType == TST_underlyingType || TypeSpecType == TST_atomic"> 827 1.1 joerg TypeRep 828 1.1 joerg </Item> 829 1.1 joerg <Item Name="ExprRep" Condition="TypeSpecType == TST_typeofExpr || TypeSpecType == TST_decltype"> 830 1.1 joerg ExprRep 831 1.1 joerg </Item> 832 1.1 joerg <Item Name="DeclRep" Condition="TypeSpecType == TST_enum || TypeSpecType == TST_struct || TypeSpecType == TST_interface || TypeSpecType == TST_union || TypeSpecType == TST_class"> 833 1.1 joerg DeclRep 834 1.1 joerg </Item> 835 1.1 joerg 836 1.1 joerg </Expand> 837 1.1 joerg </Type> 838 1.1 joerg <Type Name="clang::PragmaHandler"> 839 1.1 joerg <DisplayString>{Name,s}</DisplayString> 840 1.1 joerg </Type> 841 1.1 joerg <Type Name="clang::FileEntry"> 842 1.1 joerg <DisplayString>{Name,s}</DisplayString> 843 1.1 joerg </Type> 844 1.1 joerg <Type Name="clang::DirectoryEntry"> 845 1.1 joerg <DisplayString>{Name,s}</DisplayString> 846 1.1 joerg </Type> 847 1.1 joerg <Type Name="clang::VarDecl::VarDeclBitfields"> 848 1.1 joerg <Expand> 849 1.1 joerg <Item Name="StorageClass">(clang::StorageClass)SClass</Item> 850 1.1 joerg <Item Name="ThreadStorageClass">(clang::ThreadStorageClassSpecifier)TSCSpec</Item> 851 1.1 joerg <Item Name="InitStyle">(clang::VarDecl::InitializationStyle)InitStyle</Item> 852 1.1 joerg </Expand> 853 1.1 joerg </Type> 854 1.1 joerg <Type Name="clang::DeclaratorDecl"> 855 1.1 joerg <DisplayString>{DeclType,view(left)} {Name,view(cpp)}{DeclType,view(right)}</DisplayString> 856 1.1 joerg <Expand> 857 1.1 joerg <Item Name="Name">Name</Item> 858 1.1 joerg <Item Name="DeclType">DeclType</Item> 859 1.1 joerg </Expand> 860 1.1 joerg </Type> 861 1.1 joerg <Type Name="clang::VarDecl"> 862 1.1 joerg <DisplayString>{(DeclaratorDecl*)this,nand}</DisplayString> 863 1.1 joerg <Expand> 864 1.1 joerg <ExpandedItem>(DeclaratorDecl*)this,nd</ExpandedItem> 865 1.1 joerg <Item Name="Init">Init</Item> 866 1.1 joerg <Item Name="VarDeclBits">VarDeclBits</Item> 867 1.1 joerg </Expand> 868 1.1 joerg </Type> 869 1.1 joerg <Type Name="clang::ParmVarDecl"> 870 1.1 joerg <DisplayString>{*(VarDecl*)this,nd}</DisplayString> 871 1.1 joerg <Expand> 872 1.1 joerg <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item> 873 1.1 joerg <ExpandedItem>*(VarDecl*)this,nd</ExpandedItem> 874 1.1 joerg </Expand> 875 1.1 joerg </Type> 876 1.1 joerg <Type Name="clang::ExplicitSpecifier"> 877 1.1 joerg <DisplayString Condition="((ExplicitSpec.Value>1) & 3) == ExplicitSpecKind::ResolvedTrue" IncludeView="cpp">{"explicit ",sb}</DisplayString> 878 1.1 joerg <DisplayString Condition="((ExplicitSpec.Value>1) & 3) == ExplicitSpecKind::ResolvedFalse" IncludeView="cpp"></DisplayString> 879 1.1 joerg <DisplayString Condition="((ExplicitSpec.Value>1) & 3) == ExplicitSpecKind::Unresolved" IncludeView="cpp">explicit({ExplicitSpec,view(ptr)na})</DisplayString> 880 1.1 joerg <DisplayString Condition="(ExplicitSpec.Value&~7) == 0">{ExplicitSpec,view(int)en}</DisplayString> 881 1.1 joerg <DisplayString>{ExplicitSpec,view(int)en} : {ExplicitSpec,view(ptr)na}</DisplayString> 882 1.1 joerg </Type> 883 1.1 joerg <Type Name="clang::CXXDeductionGuideDecl"> 884 1.1 joerg <DisplayString>{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)}</DisplayString> 885 1.1 joerg <Expand> 886 1.1 joerg <Item Name="ExplicitSpec">ExplicitSpec</Item> 887 1.1 joerg <Item Name="IsCopyDeductionCandidate">(bool)FunctionDeclBits.IsCopyDeductionCandidate</Item> 888 1.1 joerg <ExpandedItem>(FunctionDecl*)this,nd</ExpandedItem> 889 1.1 joerg </Expand> 890 1.1 joerg </Type> 891 1.1 joerg <Type Name="clang::FunctionDecl"> 892 1.1 joerg <DisplayString IncludeView="retType">{((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)}</DisplayString> 893 1.1 joerg <DisplayString IncludeView="parm0" Condition="0 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams"></DisplayString> 894 1.1 joerg <DisplayString IncludeView="parm0">{ParamInfo[0],na}{*this,view(parm1)nd}</DisplayString> 895 1.1 joerg <DisplayString IncludeView="parm1" Condition="1 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams"></DisplayString> 896 1.1 joerg <DisplayString IncludeView="parm1">, {ParamInfo[1],na}{*this,view(parm2)nd}</DisplayString> 897 1.1 joerg <DisplayString IncludeView="parm2" Condition="2 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams"></DisplayString> 898 1.1 joerg <DisplayString IncludeView="parm2">, {ParamInfo[2],na}{*this,view(parm3)nd}</DisplayString> 899 1.1 joerg <DisplayString IncludeView="parm3" Condition="3 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams"></DisplayString> 900 1.1 joerg <DisplayString IncludeView="parm3">, {ParamInfo[3],na}{*this,view(parm4)nd}</DisplayString> 901 1.1 joerg <DisplayString IncludeView="parm4" Condition="4 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams"></DisplayString> 902 1.1 joerg <DisplayString IncludeView="parm4">, {ParamInfo[4],na}{*this,view(parm5)nd}</DisplayString> 903 1.1 joerg <DisplayString IncludeView="parm5" Condition="5 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams"></DisplayString> 904 1.1 joerg <DisplayString IncludeView="parm5">, /* expand for more params */</DisplayString> 905 1.1 joerg <DisplayString Condition="((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.HasTrailingReturn"> 906 1.1 joerg auto {Name,view(cpp)nd}({*this,view(parm0)nd}) -> {((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)} 907 1.1 joerg </DisplayString> 908 1.1 joerg <DisplayString>{this,view(retType)nand} {Name,view(cpp)nd}({*this,view(parm0)nd})</DisplayString> 909 1.1 joerg <Expand> 910 1.1 joerg <ExpandedItem>(clang::DeclaratorDecl *)this,nd</ExpandedItem> 911 1.1 joerg <Item Name="ReturnType">((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType</Item> 912 1.1 joerg <Synthetic Name="Parameter Types"> 913 1.1 joerg <DisplayString>{*this,view(parm0)nd}</DisplayString> 914 1.1 joerg <Expand> 915 1.1 joerg <ArrayItems> 916 1.1 joerg <Size>((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->FunctionTypeBits.NumParams</Size> 917 1.1 joerg <ValuePointer>ParamInfo</ValuePointer> 918 1.1 joerg </ArrayItems> 919 1.1 joerg </Expand> 920 1.1 joerg </Synthetic> 921 1.1 joerg <Item Name="TemplateOrSpecialization">TemplateOrSpecialization</Item> 922 1.1 joerg </Expand> 923 1.1 joerg </Type> 924 1.1 joerg <Type Name="clang::OpaquePtr<*>"> 925 1.1 joerg <DisplayString>{*($T1*)&Ptr}</DisplayString> 926 1.1 joerg <Expand> 927 1.1 joerg <ExpandedItem>($T1*)&Ptr</ExpandedItem> 928 1.1 joerg </Expand> 929 1.1 joerg </Type> 930 1.1 joerg <Type Name="clang::UnionOpaquePtr<*>"> 931 1.1 joerg <DisplayString>{($T1 *)Ptr}</DisplayString> 932 1.1 joerg <Expand> 933 1.1 joerg <ExpandedItem>($T1 *)Ptr</ExpandedItem> 934 1.1 joerg </Expand> 935 1.1 joerg </Type> 936 1.1 joerg <Type Name="clang::TemplateParameterList"> 937 1.1 joerg <DisplayString IncludeView="parm0" Condition="NumParams==0"></DisplayString> 938 1.1 joerg <DisplayString IncludeView="parm0">{*((NamedDecl **)(this+1))[0],view(cpp)}{*this,view(parm1)}</DisplayString> 939 1.1 joerg <DisplayString IncludeView="parm1" Condition="NumParams==1"></DisplayString> 940 1.1 joerg <DisplayString IncludeView="parm1">, {*((NamedDecl **)(this+1))[1],view(cpp)}{*this,view(parm2)}</DisplayString> 941 1.1 joerg <DisplayString IncludeView="parm2" Condition="NumParams==2"></DisplayString> 942 1.1 joerg <DisplayString IncludeView="parm2">, {*((NamedDecl **)(this+1))[2],view(cpp)}{*this,view(parm3)}</DisplayString> 943 1.1 joerg <DisplayString IncludeView="parm3" Condition="NumParams==3"></DisplayString> 944 1.1 joerg <DisplayString IncludeView="parm3">, {*((NamedDecl **)(this+1))[3],view(cpp)}{*this,view(parm4)}</DisplayString> 945 1.1 joerg <DisplayString IncludeView="parm4" Condition="NumParams==4"></DisplayString> 946 1.1 joerg <DisplayString IncludeView="parm4">, {*((NamedDecl **)(this+1))[4],view(cpp)}{*this,view(parm5)}</DisplayString> 947 1.1 joerg <DisplayString IncludeView="parm5" Condition="NumParams==5"></DisplayString> 948 1.1 joerg <DisplayString IncludeView="parm5">, /* Expand for more params */</DisplayString> 949 1.1 joerg <DisplayString><{*this,view(parm0)}></DisplayString> 950 1.1 joerg <Expand> 951 1.1 joerg <ArrayItems> 952 1.1 joerg <Size>NumParams</Size> 953 1.1 joerg <ValuePointer>(NamedDecl **)(this+1)</ValuePointer> 954 1.1 joerg </ArrayItems> 955 1.1 joerg </Expand> 956 1.1 joerg </Type> 957 1.1 joerg <Type Name="clang::Stmt"> 958 1.1 joerg <DisplayString>{(clang::Stmt::StmtClass)StmtBits.sClass,en}</DisplayString> 959 1.1 joerg <Expand> 960 1.1 joerg <Item Name="Class">(clang::Stmt::StmtClass)StmtBits.sClass,en</Item> 961 1.1 joerg </Expand> 962 1.1 joerg </Type> 963 1.1 joerg <Type Name="clang::Expr"> 964 1.1 joerg <DisplayString>Expression of class {(clang::Stmt::StmtClass)StmtBits.sClass,en} and type {TR,view(cpp)}</DisplayString> 965 1.1 joerg </Type> 966 1.1 joerg <Type Name="clang::DeclAccessPair"> 967 1.1 joerg <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_public">public</DisplayString> 968 1.1 joerg <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_protected">protected</DisplayString> 969 1.1 joerg <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_private">private</DisplayString> 970 1.1 joerg <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_none"></DisplayString> 971 1.1 joerg <DisplayString IncludeView="decl">{*(clang::NamedDecl *)(Ptr&~Mask)}</DisplayString> 972 1.1 joerg <DisplayString>{*this,view(access)} {*this,view(decl)}</DisplayString> 973 1.1 joerg <Expand> 974 1.1 joerg <Item Name="access">(clang::AccessSpecifier)(Ptr&Mask),en</Item> 975 1.1 joerg <Item Name="decl">*(clang::NamedDecl *)(Ptr&~Mask)</Item> 976 1.1 joerg </Expand> 977 1.1 joerg </Type> 978 1.1 joerg <Type Name="clang::UnqualifiedId"> 979 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_Identifier">[IK_Identifier] {*Identifier}</DisplayString> 980 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_OperatorFunctionId">[IK_OperatorFunctionId] {OperatorFunctionId}</DisplayString> 981 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_ConversionFunctionId">[IK_ConversionFunctionId] {ConversionFunctionId}</DisplayString> 982 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_ConstructorName">[IK_ConstructorName] {ConstructorName}</DisplayString> 983 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_DestructorName">[IK_DestructorName] {DestructorName}</DisplayString> 984 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_DeductionGuideName">[IK_DeductionGuideName] {TemplateName}</DisplayString> 985 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_TemplateId">[IK_TemplateId] {TemplateId}</DisplayString> 986 1.1 joerg <DisplayString Condition="Kind==UnqualifiedIdKind::IK_ConstructorTemplateId">[IK_ConstructorTemplateId] {TemplateId}</DisplayString> 987 1.1 joerg <DisplayString>Kind</DisplayString> 988 1.1 joerg <Expand> 989 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_Identifier">Identifier</ExpandedItem> 990 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_OperatorFunctionId">OperatorFunctionId</ExpandedItem> 991 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_ConversionFunctionId">ConversionFunctionId</ExpandedItem> 992 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_ConstructorName">ConstructorName</ExpandedItem> 993 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_DestructorName">DestructorName</ExpandedItem> 994 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_DeductionGuideName">TemplateName</ExpandedItem> 995 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_TemplateId">TemplateId</ExpandedItem> 996 1.1 joerg <ExpandedItem Condition="Kind==UnqualifiedIdKind::IK_ConstructorTemplateId">TemplateId</ExpandedItem> 997 1.1 joerg </Expand> 998 1.1 joerg </Type> 999 1.1 joerg <Type Name="clang::DeclGroup"> 1000 1.1 joerg <DisplayString>NumDecls={NumDecls}</DisplayString> 1001 1.1 joerg <Expand> 1002 1.1 joerg <ArrayItems> 1003 1.1 joerg <Size>NumDecls</Size> 1004 1.1 joerg <ValuePointer>(Decl **)(this+1)</ValuePointer> 1005 1.1 joerg </ArrayItems> 1006 1.1 joerg </Expand> 1007 1.1 joerg </Type> 1008 1.1 joerg <Type Name="clang::DeclGroupRef"> 1009 1.1 joerg <DisplayString Condition="(Kind)((uintptr_t)D&1)==SingleDeclKind">{*D}</DisplayString> 1010 1.1 joerg <DisplayString>{*(DeclGroup *)((uintptr_t)D&~1)}</DisplayString> 1011 1.1 joerg <Expand> 1012 1.1 joerg <ExpandedItem Condition="(Kind)((uintptr_t)D&1)==SingleDeclKind">D</ExpandedItem> 1013 1.1 joerg <ExpandedItem Condition="(Kind)((uintptr_t)D&1)==DeclGroupKind">(DeclGroup *)((uintptr_t)D&~1)</ExpandedItem> 1014 1.1 joerg </Expand> 1015 1.1 joerg </Type> 1016 1.1 joerg <Type Name="clang::Declarator"> 1017 1.1 joerg <DisplayString>{DS} {Name}</DisplayString> 1018 1.1 joerg </Type> 1019 1.1 joerg <Type Name="clang::UnresolvedSet<*>"> 1020 1.1 joerg <DisplayString>{Decls}</DisplayString> 1021 1.1 joerg <Expand> 1022 1.1 joerg <ExpandedItem>Decls</ExpandedItem> 1023 1.1 joerg </Expand> 1024 1.1 joerg </Type> 1025 1.1 joerg <Type Name="clang::LookupResult"> 1026 1.1 joerg <DisplayString Condition="ResultKind == clang::LookupResult::Ambiguous">{Ambiguity,en}: {Decls}</DisplayString> 1027 1.1 joerg <DisplayString>{ResultKind,en}: {Decls}</DisplayString> 1028 1.1 joerg </Type> 1029 1.1 joerg <Type Name="clang::ActionResult<*, 0>"> 1030 1.1 joerg <DisplayString Condition="Invalid">Invalid</DisplayString> 1031 1.1 joerg <DisplayString Condition="!*(void **)&Val">Unset</DisplayString> 1032 1.1 joerg <DisplayString>{Val}</DisplayString> 1033 1.1 joerg </Type> 1034 1.1 joerg <Type Name="clang::ActionResult<*, 1>"> 1035 1.1 joerg <DisplayString Condition="PtrWithInvalid&1">Invalid</DisplayString> 1036 1.1 joerg <DisplayString Condition="!PtrWithInvalid">Unset</DisplayString> 1037 1.1 joerg <DisplayString>{($T1)(PtrWithInvalid&~1)}</DisplayString> 1038 1.1 joerg <Expand> 1039 1.1 joerg <Item Name="Invalid">(bool)(PtrWithInvalid&1)</Item> 1040 1.1 joerg <Item Name="Val">($T1)(PtrWithInvalid&~1)</Item> 1041 1.1 joerg </Expand> 1042 1.1 joerg </Type> 1043 1.1 joerg </AutoVisualizer> 1044