Author: mps Date: Sun Jun 30 15:04:25 2019 New Revision: 364724 URL: http://llvm.org/viewvc/llvm-project?rev=364724&view=rev Log: Various tweaks to MSVC natvis visualizers
Make more consistent use of na format. Improve visualization of deduction guides. Add visualizer for explicit specifier (including conditionally explicit) Fix some typos Modified: cfe/trunk/utils/ClangVisualizers/clang.natvis Modified: cfe/trunk/utils/ClangVisualizers/clang.natvis URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/ClangVisualizers/clang.natvis?rev=364724&r1=364723&r2=364724&view=diff ============================================================================== --- cfe/trunk/utils/ClangVisualizers/clang.natvis (original) +++ cfe/trunk/utils/ClangVisualizers/clang.natvis Sun Jun 30 15:04:25 2019 @@ -132,7 +132,7 @@ For later versions of Visual Studio, no </Expand> </Type> <Type Name="clang::PointerType"> - <DisplayString>{PointeeType, view(poly)} *</DisplayString> + <DisplayString>{PointeeType, view(cpp)} *</DisplayString> <Expand> <Item Name="PointeeType">PointeeType</Item> <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem> @@ -209,7 +209,7 @@ For later versions of Visual Studio, no <DisplayString Condition="(MaybeModedTInfo.Value & 4)==0" IncludeView="type">{(clang::TypeSourceInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na}</DisplayString> <DisplayString Condition="(MaybeModedTInfo.Value & 4)!=0" IncludeView="type">{(clang::TypedefNameDecl::ModedTInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na}</DisplayString> <DisplayString IncludeView="name">{(TypeDecl *)this,view(cpp)nand}</DisplayString> - <DisplayString>typedef {this,view(type)na} {this,view(name)};</DisplayString> + <DisplayString>typedef {this,view(type)na} {this,view(name)na};</DisplayString> <Expand> <Item Name="IsTransparent" Condition="(MaybeModedTInfo.Value & 1)==0">"Not yet calculated",sb</Item> <Item Name="IsTransparent" Condition="(MaybeModedTInfo.Value & 1)!=0">(bool)(MaybeModedTInfo.Value & 2)</Item> @@ -219,6 +219,7 @@ For later versions of Visual Studio, no </Expand> </Type> <Type Name="clang::TypeAliasDecl"> + <DisplayString IncludeView="cpp">{(TypedefNameDecl *)this,view(name)nand}</DisplayString> <DisplayString>using {(TypedefNameDecl *)this,view(name)nand} = {(TypedefNameDecl *)this,view(type)nand}</DisplayString> </Type> @@ -575,27 +576,43 @@ For later versions of Visual Studio, no IncludeView="cpp">{*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),view(cpp)}</DisplayString> <DisplayString Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra">{{Extra ({*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask)})}}</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) == StoredCXXConstructorName" Name="[C++ Constructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)</Item> - <Item Condition="(Ptr & PtrMask) == StoredCXXDestructorName" Name="[C++ Destructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)</Item> - <Item Condition="(Ptr & PtrMask) == StoredCXXConversionFunctionName" Name="[C++ Conversion function]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask)</Item> - <Item Condition="(Ptr & PtrMask) == StoredCXXOperatorName" Name="[C++ Operator]">*(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask)</Item> - <Item Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask)</Item> + <Item Name="Kind">StoredNameKind(Ptr & PtrMask),en</Item> + <Item Condition="(Ptr & PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredCXXConstructorName" Name="[C++ Constructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredCXXDestructorName" Name="[C++ Destructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredCXXConversionFunctionName" Name="[C++ Conversion function]">*(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredCXXOperatorName" Name="[C++ Operator]">*(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask),na</Item> + <Item Condition="(Ptr & PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),na</Item> </Expand> </Type> <Type Name="clang::detail::DeclarationNameExtra"> - <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName" IncludeView="cpp">{(NamedDecl *)(((CXXDeductionGuideNameExtra *)this)->Template),view(cpp)nand}</DisplayString> - <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName">C++ Deduction guide</DisplayString> + <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName" IncludeView="cpp"> + {(CXXDeductionGuideNameExtra *)this,view(cpp)nand} + </DisplayString> + <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName"> + {(CXXDeductionGuideNameExtra *)this,nand} + </DisplayString> <DisplayString Condition="ExtraKindOrNumArgs == CXXLiteralOperatorName">C++ Literal operator</DisplayString> <DisplayString Condition="ExtraKindOrNumArgs == CXXUsingDirective">C++ Using directive</DisplayString> <DisplayString>{(clang::detail::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{" ",sb}{*this,view(cpp)}</DisplayString> + <Expand> + <ExpandedItem Condition="ExtraKindOrNumArgs == CXXDeductionGuideName">(CXXDeductionGuideNameExtra *)this</ExpandedItem> + <Item Name="ExtraKindOrNumArgs" Condition="ExtraKindOrNumArgs != CXXDeductionGuideName">ExtraKindOrNumArgs</Item> + </Expand> + </Type> + <Type Name="clang::detail::CXXDeductionGuideNameExtra"> + <DisplayString IncludeView="cpp">{Template->TemplatedDecl,view(cpp)}</DisplayString> + <DisplayString>C++ Deduction guide for {Template->TemplatedDecl,view(cpp)}</DisplayString> </Type> <Type Name="clang::detail::CXXSpecialNameExtra"> <DisplayString IncludeView="cpp">{Type,view(cpp)}</DisplayString> <DisplayString>{Type}</DisplayString> </Type> + <Type Name="clang::DeclarationNameInfo"> + <DisplayString>{Name}</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> @@ -640,9 +657,18 @@ For later versions of Visual Studio, no <ExpandedItem>*(VarDecl*)this,nd</ExpandedItem> </Expand> </Type> + <Type Name="clang::ExplicitSpecifier"> + <DisplayString Condition="((ExplicitSpec.Value>1) & 3) == ExplicitSpecKind::ResolvedTrue" IncludeView="cpp">{"explicit ",sb}</DisplayString> + <DisplayString Condition="((ExplicitSpec.Value>1) & 3) == ExplicitSpecKind::ResolvedFalse" IncludeView="cpp"></DisplayString> + <DisplayString Condition="((ExplicitSpec.Value>1) & 3) == ExplicitSpecKind::Unresolved" IncludeView="cpp">explicit({ExplicitSpec,view(ptr)na})</DisplayString> + <DisplayString Condition="(ExplicitSpec.Value&~7) == 0">{ExplicitSpec,view(int)en}</DisplayString> + <DisplayString>{ExplicitSpec,view(int)en} : {ExplicitSpec,view(ptr)na}</DisplayString> + </Type> <Type Name="clang::CXXDeductionGuideDecl"> - <DisplayString>{Name,view(cpp)nd}({(FunctionDecl*)this,view(parm0)nd}) -> {((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)}</DisplayString> + <DisplayString>{ExplicitSpec,view(cpp)}{Name,view(cpp)nd}({(FunctionDecl*)this,view(parm0)nand}) -> {((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)}</DisplayString> <Expand> + <Item Name="ExplicitSpec">ExplicitSpec</Item> + <Item Name="IsCopyDeductionCandidate">(bool)FunctionDeclBits.IsCopyDeductionCandidate</Item> <ExpandedItem>(FunctionDecl*)this,nd</ExpandedItem> </Expand> </Type> @@ -724,7 +750,7 @@ For later versions of Visual Studio, no <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_public">public</DisplayString> <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_protected">protected</DisplayString> <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_private">private</DisplayString> - <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_none">b</DisplayString> + <DisplayString IncludeView="access" Condition="(Ptr&Mask) == clang::AS_none"></DisplayString> <DisplayString IncludeView="decl">{*(clang::NamedDecl *)(Ptr&~Mask)}</DisplayString> <DisplayString>{*this,view(access)} {*this,view(decl)}</DisplayString> <Expand> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits