LGTM! Thanks!
~Aaron On Wed, Jun 25, 2014 at 8:31 PM, Zachary Turner <[email protected]> wrote: > Hi aaron.ballman, > > Adds a natvis Visualizer for VarDecl. Specifically, this visualizer behaves > as follows: > > 1) Displays the name of the declaration as the DisplayString > 2) Translates some of the bitfields into their corresponding enumeration > values > 3) Converts some of the existing visualizers to deref their pointers, so > their DisplayStrings don't show the pointer address (increases verbosity for > little gain) > > http://reviews.llvm.org/D4303 > > Files: > utils/clang.natvis > > Index: utils/clang.natvis > =================================================================== > --- utils/clang.natvis > +++ utils/clang.natvis > @@ -15,14 +15,14 @@ > </Type> > <Type Name="clang::DeclarationName"> > <DisplayString Condition="Ptr == 0">Empty</DisplayString> > - <DisplayString Condition="(Ptr & PtrMask) == > StoredIdentifier">{{Identifier ({(clang::IdentifierInfo *)(Ptr & > ~PtrMask)})}}</DisplayString> > - <DisplayString Condition="(Ptr & PtrMask) == > StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector ({(clang::IdentifierInfo > *)(Ptr & ~PtrMask)})}}</DisplayString> > - <DisplayString Condition="(Ptr & PtrMask) == > StoredObjCOneArgSelector">{{ObjC One Arg Selector ({(clang::IdentifierInfo > *)(Ptr & ~PtrMask)})}}</DisplayString> > + <DisplayString Condition="(Ptr & PtrMask) == > StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr & > ~PtrMask)})}}</DisplayString> > + <DisplayString Condition="(Ptr & PtrMask) == > StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo > *)(Ptr & ~PtrMask)})}}</DisplayString> > + <DisplayString Condition="(Ptr & PtrMask) == > StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo > *)(Ptr & ~PtrMask)})}}</DisplayString> > <DisplayString Condition="(Ptr & PtrMask) == > StoredDeclarationNameExtra">{{Extra > ({(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra > *)(Ptr & ~PtrMask))->ExtraKindOrNumArgs})}}</DisplayString> > <Expand> > - <Item Condition="(Ptr & PtrMask) == StoredIdentifier" > Name="[Identifier]">(clang::IdentifierInfo *)(Ptr & ~PtrMask)</Item> > - <Item Condition="(Ptr & PtrMask) == StoredObjCZeroArgSelector" > Name="[ObjC Zero Arg Selector]">(clang::IdentifierInfo *)(Ptr & > ~PtrMask)</Item> > - <Item Condition="(Ptr & PtrMask) == StoredObjCOneArgSelector" > Name="[ObjC One Arg Selector]">(clang::IdentifierInfo *)(Ptr & > ~PtrMask)</Item> > + <Item Condition="(Ptr & PtrMask) == StoredIdentifier" > Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask)</Item> > + <Item Condition="(Ptr & PtrMask) == StoredObjCZeroArgSelector" > Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr & > ~PtrMask)</Item> > + <Item Condition="(Ptr & PtrMask) == StoredObjCOneArgSelector" > Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr & > ~PtrMask)</Item> > <Item Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra" > Name="[Extra]">(clang::DeclarationNameExtra::ExtraKind)((clang::DeclarationNameExtra > *)(Ptr & ~PtrMask))->ExtraKindOrNumArgs</Item> > </Expand> > </Type> > @@ -41,4 +41,19 @@ > <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::VarDecl"> > + <DisplayString>{Name}</DisplayString> > + <Expand> > + <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem> > + <Item Name="VarDeclBits">VarDeclBits</Item> > + <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item> > + </Expand> > + </Type> > </AutoVisualizer> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
