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