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)}