From fb133b0aabec9b669bf7db60586b900c3422f38f Mon Sep 17 00:00:00 2001 From: Mike Spertus Date: Sun, 30 Jun 2019 22:04:25 +0000 Subject: [PATCH] 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 llvm-svn: 364724 --- clang/utils/ClangVisualizers/clang.natvis | 54 +++++++++++++++++------ 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/clang/utils/ClangVisualizers/clang.natvis b/clang/utils/ClangVisualizers/clang.natvis index 8f17a2a61943..fdfd45184d57 100644 --- a/clang/utils/ClangVisualizers/clang.natvis +++ b/clang/utils/ClangVisualizers/clang.natvis @@ -132,7 +132,7 @@ For later versions of Visual Studio, no setup is required--> - {PointeeType, view(poly)} * + {PointeeType, view(cpp)} * PointeeType *(clang::Type *)this, view(cmn) @@ -209,7 +209,7 @@ For later versions of Visual Studio, no setup is required--> {(clang::TypeSourceInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na} {(clang::TypedefNameDecl::ModedTInfo *)(MaybeModedTInfo.Value & ~7LL),view(cpp)na} {(TypeDecl *)this,view(cpp)nand} - typedef {this,view(type)na} {this,view(name)}; + typedef {this,view(type)na} {this,view(name)na}; "Not yet calculated",sb (bool)(MaybeModedTInfo.Value & 2) @@ -219,6 +219,7 @@ For later versions of Visual Studio, no setup is required--> + {(TypedefNameDecl *)this,view(name)nand} using {(TypedefNameDecl *)this,view(name)nand} = {(TypedefNameDecl *)this,view(type)nand} @@ -575,27 +576,43 @@ For later versions of Visual Studio, no setup is required--> IncludeView="cpp">{*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),view(cpp)} {{Extra ({*(clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask)})}} - *(clang::IdentifierInfo *)(Ptr & ~PtrMask) - *(clang::IdentifierInfo *)(Ptr & ~PtrMask) - *(clang::IdentifierInfo *)(Ptr & ~PtrMask) - *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask) - *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask) - *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask) - *(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask) - (clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask) + StoredNameKind(Ptr & PtrMask),en + *(clang::IdentifierInfo *)(Ptr & ~PtrMask),na + *(clang::IdentifierInfo *)(Ptr & ~PtrMask),na + *(clang::IdentifierInfo *)(Ptr & ~PtrMask),na + *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na + *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na + *(clang::detail::CXXSpecialNameExtra *)(Ptr & ~PtrMask),na + *(clang::detail::CXXOperatorIdName *)(Ptr & ~PtrMask),na + (clang::detail::DeclarationNameExtra *)(Ptr & ~PtrMask),na - {(NamedDecl *)(((CXXDeductionGuideNameExtra *)this)->Template),view(cpp)nand} - C++ Deduction guide + + {(CXXDeductionGuideNameExtra *)this,view(cpp)nand} + + + {(CXXDeductionGuideNameExtra *)this,nand} + C++ Literal operator C++ Using directive {(clang::detail::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{" ",sb}{*this,view(cpp)} + + (CXXDeductionGuideNameExtra *)this + ExtraKindOrNumArgs + + + + {Template->TemplatedDecl,view(cpp)} + C++ Deduction guide for {Template->TemplatedDecl,view(cpp)} {Type,view(cpp)} {Type} + + {Name} + {(clang::tok::TokenKind)Kind,en} {{Identifier ({*(clang::IdentifierInfo *)(PtrData)})}} @@ -640,9 +657,18 @@ For later versions of Visual Studio, no setup is required--> *(VarDecl*)this,nd + + {"explicit ",sb} + + explicit({ExplicitSpec,view(ptr)na}) + {ExplicitSpec,view(int)en} + {ExplicitSpec,view(int)en} : {ExplicitSpec,view(ptr)na} + - {Name,view(cpp)nd}({(FunctionDecl*)this,view(parm0)nd}) -> {((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) & ~15))->BaseType)->ResultType,view(cpp)} + {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)} + ExplicitSpec + (bool)FunctionDeclBits.IsCopyDeductionCandidate (FunctionDecl*)this,nd @@ -724,7 +750,7 @@ For later versions of Visual Studio, no setup is required--> public protected private - b + {*(clang::NamedDecl *)(Ptr&~Mask)} {*this,view(access)} {*this,view(decl)}