<?xml version="1.0" encoding="utf-8"?>
<!--
Visual Studio Native Debugging Visualizers for LLVM

For Visual Studio 2013 only, put this file into 
"%USERPROFILE%\Documents\Visual Studio 2013\Visualizers" or create a symbolic link so it updates automatically.

For later versions of Visual Studio, no setup is required-->
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

  <Type Name="clang::Type">
    <!-- To visualize clang::Types, we need to look at TypeBits.TC to determine the actual
         type subclass and manually dispatch accordingly (Visual Studio can't identify the real type
         because clang::Type has no virtual members hence no RTTI). 
         
         Views:
           "cmn": Visualization that is common to all clang::Type subclasses
           "poly": Visualization that is specific to the actual clang::Type subclass. The subtype-specific
                   <DisplayString> is typically as C++-like as possible (like in dump()) with <Expand>
                   containing all the gory details.
           "cpp": Only occasionally used when we need to distinguish between an ordinary view and a C++-like view.
    -->
    <DisplayString IncludeView="cmn" Condition="TypeBits.TC==clang::LocInfoType::LocInfo">LocInfoType</DisplayString>
    <DisplayString IncludeView="cmn">{(clang::Type::TypeClass)TypeBits.TC, en}Type</DisplayString>
    <!-- Dispatch to visualizers for the actual Type subclass -->
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Builtin" IncludeView="poly">{*(clang::BuiltinType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Pointer" IncludeView="poly">{*(clang::PointerType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference" IncludeView="poly">{*(clang::LValueReferenceType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::RValueReference" IncludeView="poly">{*(clang::RValueReferenceType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Attributed" IncludeView="poly">{*(clang::AttributedType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm" IncludeView="poly">{*(clang::TemplateTypeParmType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm" IncludeView="poly">{*(clang::SubstTemplateTypeParmType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="poly">{*(clang::RecordType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="cpp">{*(clang::RecordType *)this,view(cpp)}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto" IncludeView="poly">{*(clang::FunctionProtoType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization" IncludeView="poly">{*(clang::TemplateSpecializationType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName" IncludeView="poly">{*(clang::InjectedClassNameType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::PackExpansion" IncludeView="poly">{*(clang::PackExpansionType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::LocInfoType::LocInfo" IncludeView="poly">{*(clang::LocInfoType *)this}</DisplayString>
    <DisplayString IncludeView="cpp">{*this,view(poly)}</DisplayString>
    <DisplayString IncludeView="poly">{*this,view(cmn)}</DisplayString> <!-- Not yet implemented Type subclass -->
    <DisplayString>{*this,view(cmn)}  {{{*this,view(poly)}}}</DisplayString>
    <Expand>
      <Item Name="TypeClass" IncludeView="cmn">(clang::Type::TypeClass)TypeBits.TC</Item>
      <Item Name="Flags" IncludeView="cmn">TypeBits</Item>
      <Item Name="Canonical" IncludeView="cmn">CanonicalType</Item>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Builtin">*(clang::BuiltinType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Pointer">*(clang::PointerType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference">*(clang::LValueReferenceType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::RValueReference">*(clang::RValueReferenceType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Attributed">*(clang::AttributedType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm">(clang::TemplateTypeParmType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm">(clang::SubstTemplateTypeParmType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Record">(clang::RecordType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto">(clang::FunctionProtoType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization">(clang::TemplateSpecializationType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName">(clang::InjectedClassNameType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::PackExpansion">(clang::PackExpansionType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::LocInfoType::LocInfo">(clang::LocInfoType *)this</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::PointerType">
    <DisplayString>{PointeeType, view(poly)} *</DisplayString>
    <Expand>
      <Item Name="PointeeType">PointeeType</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <!-- We visualize all inner types for clang reference types. So a rvalue reference to an lvalue reference
       to an int  would visual as int &amp; &amp;&amp; This is a little different than GetPointeeType(),
       but more clearly displays the data structure and seems natural -->
  <Type Name="clang::LValueReferenceType">
    <DisplayString>{((clang::ReferenceType *)this)-&gt;PointeeType,view(cpp)} &amp;</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="PointeeType">PointeeType</Item>
    </Expand>
  </Type>
  <Type Name="clang::RValueReferenceType">
    <DisplayString>{((clang::ReferenceType *)this)-&gt;PointeeType,view(cpp)} &amp;&amp;</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="PointeeType">PointeeType</Item>
    </Expand>
  </Type>
  <Type Name="clang::AttributedType">
    <DisplayString>{ModifiedType} Attribute={(clang::AttributedType::Kind)AttributedTypeBits.AttrKind}</DisplayString>
  </Type>
  
  <!-- Unfortunately, Visual Studio has trouble seeing the PointerBitMask member PointerIntUnion, so I hardwire it to 2 bits-->
  <Type Name="clang::DeclContext">
    <DisplayString>{(clang::Decl::Kind)DeclKind,en}Decl</DisplayString>
    <Expand>
      <Item Name="DeclKind">(clang::Decl::Kind)DeclKind,en</Item>
      <Synthetic Name="Members">
        <DisplayString></DisplayString>
        <Expand>
          <LinkedListItems>
            <HeadPointer>FirstDecl</HeadPointer>
            <NextPointer>(clang::Decl *)(NextInContextAndBits.Value &amp; ~3)</NextPointer>
            <ValueNode>*this</ValueNode>
          </LinkedListItems>
        </Expand>
      </Synthetic>
    </Expand>
  </Type>
  <Type Name="clang::FieldDecl">
    <DisplayString>Field {{{*(clang::DeclaratorDecl *)this,view(cpp)nd}}}</DisplayString>
  </Type>
  <Type Name="clang::CXXMethodDecl">
    <DisplayString IncludeView="cpp">{*(clang::FunctionDecl *)this,nd}</DisplayString>
    <DisplayString>Method {{{*this,view(cpp)}}}</DisplayString>
  </Type>
  <Type Name="clang::CXXConstructorDecl">
    <DisplayString>Constructor {{{Name,view(cpp)}({*(clang::FunctionDecl *)this,view(parm0)nd})}}</DisplayString>
  </Type>
  <Type Name="clang::CXXDestructorDecl">
    <DisplayString>Destructor {{~{Name,view(cpp)}()}}</DisplayString>
  </Type>
  <Type Name="clang::TemplateTypeParmDecl">
    <DisplayString IncludeView="TorC" Condition="Typename">typename</DisplayString>
    <DisplayString IncludeView="TorC" Condition="!Typename">class</DisplayString>
    <DisplayString IncludeView="MaybeEllipses" Condition="((TemplateTypeParmType *)TypeForDecl)->CanTTPTInfo.ParameterPack">...</DisplayString>
    <DisplayString IncludeView="MaybeEllipses" Condition="!((TemplateTypeParmType *)TypeForDecl)->CanTTPTInfo.ParameterPack"></DisplayString>
    <DisplayString>{*this,view(TorC)} {*this,view(MaybeEllipses)}{Name,view(cpp)}</DisplayString> 
  </Type>
  <Type Name="clang::TemplateDecl">
    <DisplayString>template{*TemplateParams} {*TemplatedDecl};</DisplayString>
  </Type>
  <Type Name="clang::NamedDecl" >
    <DisplayString IncludeView="cpp">{Name,view(cpp)}</DisplayString>
    <DisplayString>{Name}</DisplayString>
  </Type>
  <Type Name="clang::TagDecl">
    <DisplayString IncludeView="implicit" Condition="Implicit">implicit{" ",sb}</DisplayString>
    <DisplayString IncludeView="implicit"></DisplayString>
    <DisplayString IncludeView="modifiers">{*this,view(implicit)}</DisplayString>
    <DisplayString IncludeView="cpp">{*this,view(modifiers)}{Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclKind==clang::TagTypeKind::TTK_Struct">{*this,view(modifiers)}struct {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclKind==clang::TagTypeKind::TTK_Interface">{*this,view(modifiers)}interface {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclKind==clang::TagTypeKind::TTK_Union">{*this,view(modifiers)}union {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclKind==clang::TagTypeKind::TTK_Class">{*this,view(modifiers)}class {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclKind==clang::TagTypeKind::TTK_Enum">{*this,view(modifiers)}enum {Name,view(cpp)}</DisplayString>
    <Expand>
      <ExpandedItem>(clang::DeclContext *)this</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TagType">
    <DisplayString IncludeView="cpp">{*decl,view(cpp)}</DisplayString>
    <DisplayString>{*decl}</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="decl">decl</Item>
    </Expand>
  </Type>
  <Type Name="clang::RecordType">
    <DisplayString IncludeView="cpp">{*(clang::TagType *)this,view(cpp)}</DisplayString>
    <DisplayString>{*(clang::TagType *)this}</DisplayString>
    <Expand>
      <Item Name="TagType">*(clang::TagType *)this</Item>
    </Expand>
  </Type>
  <Type Name="clang::SubstTemplateTypeParmType">
    <DisplayString>{*Replaced,view(cpp)} &lt;= {CanonicalType,view(cpp)}</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="Replaced">*Replaced</Item>
    </Expand>
  </Type>
  <!-- We only show the first 5 parameter types in the display string (can't figure out how to loop in DisplayString)
       but the expansion has all parameters -->
  <Type Name="clang::FunctionProtoType">
    <DisplayString IncludeView="retType">{ResultType,view(cpp)}</DisplayString>
    <DisplayString IncludeView="parm0" Condition="NumParams==0"></DisplayString>
    <DisplayString IncludeView="parm0">{*(clang::QualType *)(this+1),view(cpp)}{*this,view(parm1)}</DisplayString>
    <DisplayString IncludeView="parm1" Condition="NumParams==1"></DisplayString>
    <DisplayString IncludeView="parm1">, {*((clang::QualType *)(this+1)+1),view(cpp)}{*this,view(parm2)}</DisplayString>
    <DisplayString IncludeView="parm2" Condition="NumParams==2"></DisplayString>
    <DisplayString IncludeView="parm2">, {*((clang::QualType *)(this+1)+2),view(cpp)}{*this,view(parm3)}</DisplayString>
    <DisplayString IncludeView="parm3" Condition="NumParams==3"></DisplayString>
    <DisplayString IncludeView="parm3">, {*((clang::QualType *)(this+1)+3),view(cpp)}{*this,view(parm4)}</DisplayString>
    <DisplayString IncludeView="parm4" Condition="NumParams==4"></DisplayString>
    <DisplayString IncludeView="parm4">, {*((clang::QualType *)(this+1)+4),view(cpp)}{*this,view(parm5)}</DisplayString>
    <DisplayString IncludeView="parm5" Condition="NumParams==5"></DisplayString>
    <DisplayString IncludeView="parm5">, /* expand for more params */</DisplayString>
    <DisplayString>{*this,view(retType)}({*this,view(parm0)})</DisplayString>
    <Expand>
      <Item Name="ReturnType">ResultType</Item>
      <Synthetic Name="Parameter Types">
        <DisplayString>{*this,view(parm0)}</DisplayString>
        <Expand>
          <ArrayItems>
            <Size>NumParams</Size>
            <ValuePointer>(clang::QualType *)(this+1)</ValuePointer>
          </ArrayItems>
        </Expand>
      </Synthetic>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TemplateTypeParmType">
    <DisplayString IncludeView="cpp">{*TTPDecl,view(cpp)}</DisplayString>
    <DisplayString>{*TTPDecl}</DisplayString>
  </Type>
  <Type Name="clang::InjectedClassNameType">
    <DisplayString>{*Decl,view(cpp)}</DisplayString>
    <Expand>
      <Item Name="Decl">Decl</Item>
      <Item Name="InjectedType">InjectedType</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::PackExpansionType">
    <DisplayString>{Pattern}</DisplayString>
    <Expand>
      <Item Name="Pattern">Pattern</Item>
      <Item Name="NumExpansions">NumExpansions</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::QualType">
    <!-- When VS2013 support is deprecated, change 4 to clang::TypeAlignmentInBits (not properly recognized by VS2013) -->
    <DisplayString IncludeView="poly">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType,view(poly)}{*this,view(fastQuals)}</DisplayString>
    <DisplayString IncludeView="cpp">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType,view(cpp)}{*this,view(fastQuals)}</DisplayString>
    <!-- For the Fast Qualifiers, it is simpler (and probably more efficient) just to list all 8 cases than create
          views for each qualifier. TODO: Non-fast qualifiers -->
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==0"></DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==1">{" ",sb}const</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==2">{" ",sb}restrict</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==3">{" ",sb}const restrict</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==4">{" ",sb}volatile</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==5">{" ",sb}const volatile</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==6">{" ",sb}volatile restrict</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==7">{" ",sb}const volatile restrict</DisplayString>
    <DisplayString IncludeView="fastQuals">Cannot visualize non-fast qualifiers</DisplayString>
    <DisplayString>{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType}{*this,view(fastQuals)}</DisplayString>
    <Expand>
      <Item Name="Fast Quals">*this,view(fastQuals)</Item>
      <Item Name="BaseType">*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType</Item>
    </Expand>
  </Type>
  <Type Name="clang::LocInfoType">
    <DisplayString>{*DeclInfo}</DisplayString>
    <Expand>
      <Item Name="DeclInfo">DeclInfo</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TypeSourceInfo">
    <DisplayString>{Ty}</DisplayString>
  </Type>
  <Type Name="clang::TemplateArgumentLoc">
    <DisplayString>{Argument}</DisplayString>
    <Expand>
      <ExpandedItem>Argument</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TemplateArgument">
    <DisplayString IncludeView="cpp" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">{*(clang::QualType *)&amp;TypeOrValue.V,view(cpp)}</DisplayString>
    <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en} template argument: {*(clang::QualType *)&amp;TypeOrValue.V}</DisplayString>
    <DisplayString IncludeView="arg0" Condition="Args.NumArgs==0"></DisplayString>
    <DisplayString IncludeView="arg0">{Args.Args[0]}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="Args.NumArgs==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {Args.Args[1]}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="Args.NumArgs==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {Args.Args[2]}, ...</DisplayString>
    <DisplayString IncludeView="arg0cpp" Condition="Args.NumArgs==0"></DisplayString>
    <DisplayString IncludeView="arg0cpp">{Args.Args[0],view(cpp)}{*this,view(arg1cpp)}</DisplayString>
    <DisplayString IncludeView="arg1cpp" Condition="Args.NumArgs==1"></DisplayString>
    <DisplayString IncludeView="arg1cpp">, {Args.Args[1],view(cpp)}{*this,view(arg2cpp)}</DisplayString>
    <DisplayString IncludeView="arg2cpp" Condition="Args.NumArgs==2"></DisplayString>
    <DisplayString IncludeView="arg2cpp">, {Args.Args[2],view(cpp)}, ...</DisplayString>
    <DisplayString IncludeView="cpp" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">{*this,view(arg0cpp)}</DisplayString>
    <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">{*this,view(arg0)}</DisplayString>
    <DisplayString>{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en}</DisplayString>
    <Expand>
      <Item Name="QualType" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">*(clang::QualType *)&amp;TypeOrValue.V</Item>
      <ArrayItems Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">
        <Size>Args.NumArgs</Size>
        <ValuePointer>Args.Args</ValuePointer>
      </ArrayItems>
      <!-- TODO: Other kinds-->
    </Expand>
  </Type>
  <Type Name="clang::TemplateArgumentList">
    <DisplayString IncludeView="arg0" Condition="NumArguments==0"></DisplayString>
    <DisplayString IncludeView="arg0">{Arguments[0],view(cpp)}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="NumArguments==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {Arguments[1],view(cpp)}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="NumArguments==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {Arguments[1],view(cpp)}, ...</DisplayString>
    <DisplayString>&lt;{*this,view(arg0)}&gt;</DisplayString>
    <Expand>
      <Item Name="NumArguments">NumArguments</Item>
      <ArrayItems>
        <Size>NumArguments</Size>
        <ValuePointer>Arguments</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="llvm::ArrayRef&lt;clang::TemplateArgument&gt;">
    <DisplayString IncludeView="arg0" Condition="Length==0"></DisplayString>
    <DisplayString IncludeView="arg0">{Data[0],view(cpp)}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="Length==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {Data[1],view(cpp)}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="Length==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {Data[2],view(cpp)}, ...</DisplayString>
    <DisplayString>&lt;{*this,view(arg0)}&gt;</DisplayString>
  </Type>
  <Type Name="clang::MultiLevelTemplateArgumentList">
    <DisplayString IncludeView="level0" Condition="(llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.EndX - (llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX==0"></DisplayString>
    <DisplayString IncludeView="level0">{((llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX)[0],view(cpp)}{*this,view(level1)}</DisplayString>
    <DisplayString IncludeView="level1" Condition="(llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.EndX - (llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX==1"></DisplayString>
    <DisplayString IncludeView="level1">::{((llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX)[1],view(cpp)}{*this,view(level2)}</DisplayString>
    <DisplayString IncludeView="level2" Condition="(llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.EndX - (llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX==2"></DisplayString>
    <DisplayString IncludeView="level2">::{((llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX)[2],view(cpp)}, ...</DisplayString>
    <DisplayString>{*this,view(level0)}</DisplayString>
    <Expand>
      <Item Name="TemplateList">TemplateArgumentLists</Item>
    </Expand>
  </Type>
  <Type Name="clang::ParsedTemplateArgument">
    <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Type">Type template argument: {*(clang::QualType *)Arg}</DisplayString>
    <DisplayString Condition="Kind==clang::ParsedTemplateArgument::NonType">Non-type template argument: {*(clang::Expr *)Arg}</DisplayString>
    <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Template">Template template argument: {*(clang::TemplateName *)Arg</DisplayString>
    <Expand>
      <Item Name="Kind">Kind,en</Item>
      <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::Type">(clang::QualType *)Arg</Item>
      <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::NonType">(clang::Expr *)Arg</Item>
      <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::Template">(clang::TemplateName *)Arg</Item>
    </Expand>
  </Type>
  <!-- Builtin types that have C++ keywords are manually displayed as that keyword. Otherwise, just use the enum name -->
  <Type Name="clang::BuiltinType">
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Void">void</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Bool">bool</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char_U">char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UChar">unsigned char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::WChar_U">wchar_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char16">char16_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char32">char32_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UShort">unsigned short</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UInt">unsigned int</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::ULong">unsigned long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::ULongLong">unsigned long long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UInt128">__uint128_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char_S">char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::SChar">signed char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::WChar_S">wchar_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Short">short</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Int">int</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Long">long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::LongLong">long long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Int128">__int128_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Half">__fp16</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Float">float</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Double">double</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::LongDouble">long double</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::NullPtr">nullptr_t</DisplayString>
    <DisplayString>{(clang::BuiltinType::Kind)BuiltinTypeBits.Kind, en}</DisplayString>
    <Expand>
      <Item Name="Kind">(clang::BuiltinType::Kind)BuiltinTypeBits.Kind</Item>
    </Expand>
  </Type>

  <Type Name="clang::TemplateSpecializationType">
    <DisplayString IncludeView="arg0" Condition="NumArgs==0"></DisplayString>
    <DisplayString IncludeView="arg0">{((clang::TemplateArgument *)(this+1))[0],view(cpp)}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="NumArgs==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {((clang::TemplateArgument *)(this+1))[1],view(cpp)}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="NumArgs==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {((clang::TemplateArgument *)(this+1))[2],view(cpp)}{*this,view(arg3)}</DisplayString>
    <DisplayString Condition="(Template.Storage.Val.Val.Value &amp; 3) == 0">
      {*((clang::TemplateDecl *)((Template.Storage.Val.Val.Value &gt;&gt; 2) &lt;&lt; 2))->TemplatedDecl,view(cpp)}&lt;{*this,view(arg0)}&gt;
    </DisplayString>
    <Expand>
      <Item Name="Template">Template.Storage</Item>
      <ArrayItems>
        <Size>NumArgs</Size>
        <ValuePointer>(clang::TemplateArgument *)(this+1)</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="clang::IdentifierInfo">
    <DisplayString Condition="Entry != 0">{((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,sb}</DisplayString>
    <Expand>
      <Item Condition="Entry != 0" Name="[Identifier]">((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,s</Item>
      <Item Name="Token Kind">(clang::tok::TokenKind)TokenID</Item>
    </Expand>
  </Type>
  <Type Name="clang::DeclarationName">
    <DisplayString Condition="Ptr == 0" IncludeView="cpp"></DisplayString>
    <DisplayString Condition="Ptr == 0">Empty</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier" IncludeView="cpp">{*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra"
                   IncludeView="cpp">{*(clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask),view(cpp)}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra">{{Extra ({*(clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <Expand>
      <Item Condition="(Ptr &amp; PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask)</Item>
    </Expand>
  </Type>
  <Type Name="clang::DeclarationNameExtra">
    <DisplayString IncludeView="cpp"
                   Condition="ExtraKindOrNumArgs &gt;= clang::DeclarationNameExtra::CXXConstructor 
                   &amp;&amp; ExtraKindOrNumArgs &lt;= clang::DeclarationNameExtra::CXXConversionFunction"
                   >{((clang::CXXSpecialName *)this)-&gt;Type,view(cpp)}</DisplayString>
    <DisplayString>{(clang::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{"  ",sb}{*this,view(cpp)}</DisplayString>
  </Type>
  <Type Name="clang::Token">
    <DisplayString Condition="Kind != clang::tok::identifier">{(clang::tok::TokenKind)Kind,en}</DisplayString>
    <DisplayString Condition="Kind == clang::tok::identifier">{{Identifier ({*(clang::IdentifierInfo *)(PtrData)})}}</DisplayString>
  </Type>
  <Type Name="clang::DeclSpec">
    <DisplayString>[{(clang::DeclSpec::SCS)StorageClassSpec}], [{(clang::TypeSpecifierType)TypeSpecType}]</DisplayString>
  </Type>
  <Type Name="clang::PragmaHandler">
    <DisplayString>{Name,s}</DisplayString>
  </Type>
  <Type Name="clang::FileEntry">
    <DisplayString>{Name,s}</DisplayString>
  </Type>
  <Type Name="clang::DirectoryEntry">
    <DisplayString>{Name,s}</DisplayString>
  </Type>
  <Type Name="clang::VarDecl::VarDeclBitfields">
    <Expand>
      <Item Name="StorageClass">(clang::StorageClass)SClass</Item>
      <Item Name="ThreadStorageClass">(clang::ThreadStorageClassSpecifier)TSCSpec</Item>
      <Item Name="InitStyle">(clang::VarDecl::InitializationStyle)InitStyle</Item>
    </Expand>
  </Type>
  <Type Name="clang::DeclaratorDecl">
    <DisplayString>{DeclType,view(cpp)} {Name,view(cpp)}</DisplayString>
    <Expand>
      <Item Name="Name">Name</Item>
      <Item Name="DeclType">DeclType</Item>
    </Expand>
  </Type>
  <Type Name="clang::VarDecl">
    <DisplayString>{*(DeclaratorDecl*)this,nd}</DisplayString>
    <Expand>
      <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem>
      <Item Name="VarDeclBits">VarDeclBits</Item>
    </Expand>
  </Type>
  <Type Name="clang::ParmVarDecl">
    <DisplayString>{*(VarDecl*)this,nd}</DisplayString>
    <Expand>
      <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item>
      <ExpandedItem>*(VarDecl*)this,nd</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::FunctionDecl">
    <DisplayString IncludeView="retType">{*(clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType,view(retType)}</DisplayString>
    <DisplayString IncludeView="parm0" Condition="0 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams"></DisplayString>
    <DisplayString IncludeView="parm0">{*ParamInfo[0]}{*this,view(parm1)nd}</DisplayString>
    <DisplayString IncludeView="parm1" Condition="1 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams"></DisplayString>
    <DisplayString IncludeView="parm1">, {*ParamInfo[1]}{*this,view(parm2)nd}</DisplayString>
    <DisplayString IncludeView="parm2" Condition="2 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams"></DisplayString>
    <DisplayString IncludeView="parm2">, {*ParamInfo[2]}{*this,view(parm3)nd}</DisplayString>
    <DisplayString IncludeView="parm3" Condition="3 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams"></DisplayString>
    <DisplayString IncludeView="parm3">, {*ParamInfo[3]}{*this,view(parm4)nd}</DisplayString>
    <DisplayString IncludeView="parm4" Condition="4 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams"></DisplayString>
    <DisplayString IncludeView="parm4">, {*ParamInfo[4]}{*this,view(parm5)nd}</DisplayString>
    <DisplayString IncludeView="parm5" Condition="5 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams"></DisplayString>
    <DisplayString IncludeView="parm5">, /* expand for more params */</DisplayString>
    <DisplayString>{*this,view(retType)nd} {Name,view(cpp)nd}({*this,view(parm0)nd})</DisplayString>
    <Expand>
      <Item Name="ReturnType">*this,view(retType)nd</Item>
      <Synthetic Name="Parameter Types">
        <DisplayString>{*this,view(parm0)nd}</DisplayString>
        <Expand>
          <ArrayItems>
            <Size>((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;NumParams</Size>
            <ValuePointer>ParamInfo</ValuePointer>
          </ArrayItems>
        </Expand>
      </Synthetic>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::OpaquePtr&lt;clang::QualType&gt;">
    <DisplayString>{*(clang::QualType *)this}</DisplayString>
    <Expand>
      <Item Name="Ptr">*(clang::QualType *)this</Item>
    </Expand>
  </Type>
  <Type Name="clang::UnionOpaquePtr&lt;clang::QualType&gt;">
    <DisplayString>{*(clang::QualType *)this}</DisplayString>
    <Expand>
      <Item Name="Ptr">*(clang::QualType *)this</Item>
    </Expand>
  </Type>
  <Type Name="clang::OpaquePtr&lt;*&gt;">
    <DisplayString>{($T1 *)Ptr}</DisplayString>
    <Expand>
      <ExpandedItem>($T1 *)Ptr</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::UnionOpaquePtr&lt;*&gt;">
    <DisplayString>{($T1 *)Ptr}</DisplayString>
    <Expand>
      <ExpandedItem>($T1 *)Ptr</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TemplateParameterList">
    <DisplayString IncludeView="parm0" Condition="NumParams==0"></DisplayString>
    <DisplayString IncludeView="parm0">{*((NamedDecl **)(this+1))[0],view(cpp)}{*this,view(parm1)}</DisplayString>
    <DisplayString IncludeView="parm1" Condition="NumParams==1"></DisplayString>
    <DisplayString IncludeView="parm1">, {*((NamedDecl **)(this+1))[1],view(cpp)}{*this,view(parm2)}</DisplayString>
    <DisplayString IncludeView="parm2" Condition="NumParams==2"></DisplayString>
    <DisplayString IncludeView="parm2">, {*((NamedDecl **)(this+1))[2],view(cpp)}{*this,view(parm3)}</DisplayString>
    <DisplayString IncludeView="parm3" Condition="NumParams==3"></DisplayString>
    <DisplayString IncludeView="parm3">, {*((NamedDecl **)(this+1))[3],view(cpp)}{*this,view(parm4)}</DisplayString>
    <DisplayString IncludeView="parm4" Condition="NumParams==4"></DisplayString>
    <DisplayString IncludeView="parm4">, {*((NamedDecl **)(this+1))[4],view(cpp)}{*this,view(parm5)}</DisplayString>
    <DisplayString IncludeView="parm5" Condition="NumParams==5"></DisplayString>
    <DisplayString IncludeView="parm5">, /* Expand for more params */</DisplayString>
    <DisplayString>&lt;{*this,view(parm0)}&gt;</DisplayString>
    <Expand>
      <ArrayItems>
        <Size>NumParams</Size>
      <ValuePointer>(NamedDecl **)(this+1)</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="clang::Stmt">
    <DisplayString>{(clang::Stmt::StmtClass)StmtBits.sClass,en}</DisplayString>
    <Expand>
      <Item Name="Class">(clang::Stmt::StmtClass)StmtBits.sClass,en</Item>
    </Expand>
  </Type>
  <Type Name="clang::Expr">
    <DisplayString>Expression of class {(clang::Stmt::StmtClass)StmtBits.sClass,en} and type {TR,view(cpp)}</DisplayString>
  </Type>
  <Type Name="clang::DeclAccessPair">
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_public">public</DisplayString>
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_protected">protected</DisplayString>
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_private">private</DisplayString>
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_none">b</DisplayString>
    <DisplayString IncludeView="decl">{*(clang::NamedDecl *)(Ptr&amp;~Mask)}</DisplayString>
    <DisplayString>{*this,view(access)} {*this,view(decl)}</DisplayString>
  </Type>
  <Type Name="clang::UnresolvedSet&lt;*&gt;">
    <DisplayString>{Decls}</DisplayString>
    <Expand>
      <ExpandedItem>Decls</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::LookupResult">
    <DisplayString Condition="ResultKind == clang::LookupResult::Ambiguous">{Ambiguity,en}: {Decls}</DisplayString>
    <DisplayString>{ResultKind,en}: {Decls}</DisplayString>
  </Type>
  <Type Name="clang::ActionResult&lt;*&gt;" IncludeView="packedValidity">
    <DisplayString Condition="PtrWithInvalid&amp;1">Invalid</DisplayString>
    <DisplayString Condition="!(PtrWithInvalid&amp;1)">Valid</DisplayString>
   </Type>
  <Type Name="clang::ActionResult&lt;*&gt;" IncludeView="unpackedValidity">
    <DisplayString Condition="Invalid">Invalid</DisplayString>
    <DisplayString Condition="!Invalid">Valid</DisplayString>
  </Type>
  <Type Name="clang::ActionResult&lt;*&gt;" IncludeView="packed">
    <DisplayString>{*this,view(packedValidity)}: {($T1 *)(PtrWithInvalid&amp;~1)}</DisplayString>
    <Expand>
      <Item Name="Invalid">(bool)(PtrWithInvalid&amp;1)</Item>
      <Item Name="Val">($T1 *)(PtrWithInvalid&amp;~1)</Item>
    </Expand>
  </Type>
  <Type Name="clang::ActionResult&lt;*&gt;" IncludeView="unpacked">
    <DisplayString>{*this,view(unpackedValidity)}: {Val}</DisplayString>
  </Type>
  <Type Name="clang::ActionResult&lt;*&gt;">
    <DisplayString Condition="$T2">{*this,view(packed)}</DisplayString>
    <DisplayString Condition="!$T2">{*this,view(unpacked)}</DisplayString>
    <Expand>
      <ExpandedItem Condition="$T2">*this,view(packed)</ExpandedItem>
      <ExpandedItem Condition="!$T2">*this,view(unpacked)</ExpandedItem>
    </Expand>
  </Type>
</AutoVisualizer>
