blob: a0004e9b01638d06ba37419eaa8457d8d140c601 [file] [log] [blame]
Aaron Ballman83f197b2014-01-24 19:46:45 +00001<?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">
Aaron Ballman9d214542015-09-29 17:32:36 +00009 <Type Name="clang::Type">
10 <DisplayString Condition="(clang::Type::TypeClass)TypeBits.TC == clang::Type::Builtin">Builtin Type={(clang::BuiltinType::Kind)BuiltinTypeBits.Kind}</DisplayString>
11 <DisplayString Condition="(clang::Type::TypeClass)TypeBits.TC == clang::Type::Attributed">Modified Type={((clang::AttributedType*)this)->ModifiedType} Attribute={(clang::AttributedType::Kind)AttributedTypeBits.AttrKind}</DisplayString>
12 <DisplayString>Type Class={(clang::Type::TypeClass)TypeBits.TC}</DisplayString>
13 </Type>
14 <Type Name="clang::QualType">
15 <DisplayString>{((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; clang::TypeAlignmentInBits) - 1)))-&gt;BaseType}</DisplayString>
16 </Type>
Aaron Ballman83f197b2014-01-24 19:46:45 +000017 <Type Name="clang::IdentifierInfo">
18 <DisplayString Condition="Entry != 0">({((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,s})</DisplayString>
19 <Expand>
20 <Item Condition="Entry != 0" Name="[Identifier]">((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,s</Item>
21 <Item Name="Token Kind">(clang::tok::TokenKind)TokenID</Item>
22 </Expand>
23 </Type>
24 <Type Name="clang::DeclarationName">
25 <DisplayString Condition="Ptr == 0">Empty</DisplayString>
Zachary Turnerdfa871b2014-06-26 16:26:42 +000026 <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
27 <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
28 <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
Aaron Ballman83f197b2014-01-24 19:46:45 +000029 <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra">{{Extra ({(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask))-&gt;ExtraKindOrNumArgs})}}</DisplayString>
30 <Expand>
Zachary Turnerdfa871b2014-06-26 16:26:42 +000031 <Item Condition="(Ptr &amp; PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
32 <Item Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
33 <Item Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
Aaron Ballman83f197b2014-01-24 19:46:45 +000034 <Item Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask))-&gt;ExtraKindOrNumArgs</Item>
Aaron Ballman74b5cdc2015-09-11 18:35:18 +000035 </Expand>
36 </Type>
37 <Type Name="clang::Token">
38 <DisplayString Condition="Kind != clang::tok::identifier">{(clang::tok::TokenKind)Kind}</DisplayString>
39 <DisplayString Condition="Kind == clang::tok::identifier">{{Identifier ({*(clang::IdentifierInfo *)(PtrData)})}}</DisplayString>
40 </Type>
41 <Type Name="clang::DeclSpec">
42 <DisplayString>[{(clang::DeclSpec::SCS)StorageClassSpec}], [{(clang::TypeSpecifierType)TypeSpecType}]</DisplayString>
Aaron Ballman83f197b2014-01-24 19:46:45 +000043 </Type>
44 <Type Name="clang::PragmaHandler">
45 <DisplayString>{Name,s}</DisplayString>
46 </Type>
47 <Type Name="clang::FileEntry">
48 <DisplayString>{Name,s}</DisplayString>
49 </Type>
50 <Type Name="clang::DirectoryEntry">
51 <DisplayString>{Name,s}</DisplayString>
52 </Type>
Zachary Turnerdfa871b2014-06-26 16:26:42 +000053 <Type Name="clang::VarDecl::VarDeclBitfields">
54 <Expand>
55 <Item Name="StorageClass">(clang::StorageClass)SClass</Item>
56 <Item Name="ThreadStorageClass">(clang::ThreadStorageClassSpecifier)TSCSpec</Item>
57 <Item Name="InitStyle">(clang::VarDecl::InitializationStyle)InitStyle</Item>
58 </Expand>
59 </Type>
60 <Type Name="clang::VarDecl">
61 <DisplayString>{Name}</DisplayString>
62 <Expand>
63 <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem>
64 <Item Name="VarDeclBits">VarDeclBits</Item>
65 <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item>
66 </Expand>
67 </Type>
Aaron Ballman83f197b2014-01-24 19:46:45 +000068</AutoVisualizer>