Add a Visualizer for VarDecl.
authorZachary Turner <zturner@google.com>
Thu, 26 Jun 2014 16:26:42 +0000 (16:26 +0000)
committerZachary Turner <zturner@google.com>
Thu, 26 Jun 2014 16:26:42 +0000 (16:26 +0000)
Reviewed by: Aaron Ballman

Differential Revision: http://reviews.llvm.org/D4303

llvm-svn: 211788

clang/utils/clang.natvis

index 1f956f1..107af50 100644 (file)
@@ -15,14 +15,14 @@ or create a symbolic link so it updates automatically.
   </Type>\r
   <Type Name="clang::DeclarationName">\r
     <DisplayString Condition="Ptr == 0">Empty</DisplayString>\r
-    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier">{{Identifier ({(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>\r
-    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector ({(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>\r
-    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector ({(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>\r
+    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>\r
+    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>\r
+    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>\r
     <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra">{{Extra ({(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask))-&gt;ExtraKindOrNumArgs})}}</DisplayString>\r
     <Expand>\r
-      <Item Condition="(Ptr &amp; PtrMask) == StoredIdentifier" Name="[Identifier]">(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>\r
-      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>\r
-      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>\r
+      <Item Condition="(Ptr &amp; PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>\r
+      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>\r
+      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>\r
       <Item Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra *)(Ptr &amp; ~PtrMask))-&gt;ExtraKindOrNumArgs</Item>\r
     </Expand>\r
   </Type>\r
@@ -41,4 +41,19 @@ or create a symbolic link so it updates automatically.
   <Type Name="clang::DirectoryEntry">\r
     <DisplayString>{Name,s}</DisplayString>\r
   </Type>\r
+  <Type Name="clang::VarDecl::VarDeclBitfields">\r
+    <Expand>\r
+      <Item Name="StorageClass">(clang::StorageClass)SClass</Item>\r
+      <Item Name="ThreadStorageClass">(clang::ThreadStorageClassSpecifier)TSCSpec</Item>\r
+      <Item Name="InitStyle">(clang::VarDecl::InitializationStyle)InitStyle</Item>\r
+    </Expand>\r
+  </Type>\r
+  <Type Name="clang::VarDecl">\r
+    <DisplayString>{Name}</DisplayString>\r
+    <Expand>\r
+      <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem>\r
+      <Item Name="VarDeclBits">VarDeclBits</Item>\r
+      <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item>\r
+    </Expand>\r
+  </Type>\r
 </AutoVisualizer>\r