1<?xml version="1.0" encoding="utf-8"?>
2<!--
3Visual Studio 2012 Native Debugging Visualizers for LLVM
4
5Put this file into "%USERPROFILE%\Documents\Visual Studio 2012\Visualizers"
6or create a symbolic link so it updates automatically.
7-->
8<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
9  <Type Name="clang::IdentifierInfo">
10    <DisplayString Condition="Entry != 0">({((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,s})</DisplayString>
11    <Expand>
12      <Item Condition="Entry != 0" Name="[Identifier]">((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,s</Item>
13      <Item Name="Token Kind">(clang::tok::TokenKind)TokenID</Item>
14    </Expand>
15  </Type>
16  <Type Name="clang::DeclarationName">
17    <DisplayString Condition="Ptr == 0">Empty</DisplayString>
18    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
19    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
20    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
21    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra">{{Extra ({(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask))-&gt;ExtraKindOrNumArgs})}}</DisplayString>
22    <Expand>
23      <Item Condition="(Ptr &amp; PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
24      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
25      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
26      <Item Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask))-&gt;ExtraKindOrNumArgs</Item>
27    </Expand>
28  </Type>
29  <Type Name="clang::Token">
30    <DisplayString>{(clang::tok::TokenKind)Kind}</DisplayString>
31  </Type>
32  <Type Name="clang::DeclSpec">
33    <DisplayString>[{(clang::DeclSpec::SCS)StorageClassSpec}], [{(clang::TypeSpecifierType)TypeSpecType}]</DisplayString>
34  </Type>
35  <Type Name="clang::PragmaHandler">
36    <DisplayString>{Name,s}</DisplayString>
37  </Type>
38  <Type Name="clang::FileEntry">
39    <DisplayString>{Name,s}</DisplayString>
40  </Type>
41  <Type Name="clang::DirectoryEntry">
42    <DisplayString>{Name,s}</DisplayString>
43  </Type>
44  <Type Name="clang::VarDecl::VarDeclBitfields">
45    <Expand>
46      <Item Name="StorageClass">(clang::StorageClass)SClass</Item>
47      <Item Name="ThreadStorageClass">(clang::ThreadStorageClassSpecifier)TSCSpec</Item>
48      <Item Name="InitStyle">(clang::VarDecl::InitializationStyle)InitStyle</Item>
49    </Expand>
50  </Type>
51  <Type Name="clang::VarDecl">
52    <DisplayString>{Name}</DisplayString>
53    <Expand>
54      <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem>
55      <Item Name="VarDeclBits">VarDeclBits</Item>
56      <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item>
57    </Expand>
58  </Type>
59</AutoVisualizer>
60