From: Mike Spertus Date: Fri, 1 Apr 2016 03:31:43 +0000 (+0000) Subject: Visual Studio native visualizers for clang::TemplateSpecializationType X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2641018c61730eaedf2518a16a83c25eb94fb4a3;p=clang Visual Studio native visualizers for clang::TemplateSpecializationType Displays a template specialization as, say, A. Does not yet handle UncommonTemplateNameStorage, QualifiedTemplateName, or DependentTemplateName, but still more than worthwhile git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@265104 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/ClangVisualizers/clang.natvis b/utils/ClangVisualizers/clang.natvis index b3fc6c78b9..6e4bdf379c 100644 --- a/utils/ClangVisualizers/clang.natvis +++ b/utils/ClangVisualizers/clang.natvis @@ -229,6 +229,7 @@ For later versions of Visual Studio, no setup is required--> + {*(clang::QualType *)&TypeOrValue.V,view(cpp)} {(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en} template parameter: {*(clang::QualType *)&TypeOrValue.V} *(clang::QualType *)&TypeOrValue.V @@ -269,8 +270,22 @@ For later versions of Visual Studio, no setup is required--> - {(clang::TemplateDecl *)((Template.Storage.Val.Val.Value >> 2) << 2)} - {Template.Storage} + + {((clang::TemplateArgument *)(this+1))[0],view(cpp)}{*this,view(arg1)} + + , {((clang::TemplateArgument *)(this+1))[1],view(cpp)}{*this,view(arg2)} + + , {((clang::TemplateArgument *)(this+1))[2],view(cpp)}{*this,view(arg3)} + + {*((clang::TemplateDecl *)((Template.Storage.Val.Val.Value >> 2) << 2))->TemplatedDecl,view(cpp)}<{*this,view(arg0)}> + + + Template.Storage + + NumArgs + (clang::TemplateArgument *)(this+1) + + {((llvm::StringMapEntry<clang::IdentifierInfo *>*)Entry)+1,sb}