diff options
author | Mike Spertus <mike@spertus.com> | 2019-01-05 23:15:30 +0000 |
---|---|---|
committer | Mike Spertus <mike@spertus.com> | 2019-01-05 23:15:30 +0000 |
commit | 98c2cb159c1d4b54ebe0862467665ef10f2b586d (patch) | |
tree | f5329b6fc72e7a1fecaee991099c26da402e5c78 /utils | |
parent | 4159746b2cb2077a5a10b1ba65d8c865d35f6bd3 (diff) |
Fix MSVC Visualization for TemplateTypeParmType and TemplateTypeParmDecl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@350482 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/ClangVisualizers/clang.natvis | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/utils/ClangVisualizers/clang.natvis b/utils/ClangVisualizers/clang.natvis index a581a0d068..dad00c5618 100644 --- a/utils/ClangVisualizers/clang.natvis +++ b/utils/ClangVisualizers/clang.natvis @@ -57,14 +57,13 @@ For later versions of Visual Studio, no setup is required--> No TypeBits set beyond TypeClass
</DisplayString>
<DisplayString IncludeView="flags">
- {*this, view(Dependent)}{*this, view(InstantiationDependent)}{*this, view(VariablyModified)}
- {*this, view(ContainsUnexpandedParameterPack)}{*this, view(Cache)}{*this, view(FromAST)}</DisplayString>
+{*this, view(Dependent)}{*this, view(InstantiationDependent)}{*this, view(VariablyModified)}
+{*this, view(ContainsUnexpandedParameterPack)}{*this, view(Cache)}{*this, view(FromAST)}</DisplayString>
<DisplayString>{*this,view(cmn)} {{{*this,view(poly)}}}</DisplayString>
<Expand>
<Item Name="TypeClass" IncludeView="cmn">(clang::Type::TypeClass)TypeBits.TC</Item>
<Item Name="Flags" IncludeView="cmn">*this,view(flags)</Item>
<Item Name="Canonical" IncludeView="cmn">CanonicalType</Item>
- <Item Name="isCanonicalUnqualified" IncludeView="cmn">CanonicalType.Value.Value == this</Item>
<ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Builtin">*(clang::BuiltinType *)this</ExpandedItem>
<ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Pointer">*(clang::PointerType *)this</ExpandedItem>
<ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference">*(clang::LValueReferenceType *)this</ExpandedItem>
@@ -142,8 +141,9 @@ For later versions of Visual Studio, no setup is required--> <Type Name="clang::TemplateTypeParmDecl">
<DisplayString IncludeView="TorC" Condition="Typename">typename</DisplayString>
<DisplayString IncludeView="TorC" Condition="!Typename">class</DisplayString>
- <DisplayString IncludeView="MaybeEllipses" Condition="((TemplateTypeParmType *)TypeForDecl)->CanTTPTInfo.ParameterPack">...</DisplayString>
- <DisplayString IncludeView="MaybeEllipses" Condition="!((TemplateTypeParmType *)TypeForDecl)->CanTTPTInfo.ParameterPack"></DisplayString>
+ <DisplayString IncludeView="MaybeEllipses" Condition="TypeForDecl == nullptr">(not yet known if parameter pack) </DisplayString>
+ <DisplayString IncludeView="MaybeEllipses" Condition="((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase *)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType))->CanTTPTInfo.ParameterPack">...</DisplayString>
+ <DisplayString IncludeView="MaybeEllipses" Condition="!((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase *)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType))->CanTTPTInfo.ParameterPack"></DisplayString>
<DisplayString>{*this,view(TorC)} {*this,view(MaybeEllipses)}{Name,view(cpp)}</DisplayString>
</Type>
<Type Name="clang::TemplateDecl">
@@ -227,8 +227,10 @@ For later versions of Visual Studio, no setup is required--> </Expand>
</Type>
<Type Name="clang::TemplateTypeParmType">
- <DisplayString IncludeView="cpp">{*TTPDecl,view(cpp)}</DisplayString>
- <DisplayString>{*TTPDecl}</DisplayString>
+ <DisplayString Condition="CanonicalType.Value.Value != this">Non-canonical: {*TTPDecl}</DisplayString>
+ <DisplayString>Canonical: {CanTTPTInfo}</DisplayString>
+ <Expand>
+ </Expand>
</Type>
<Type Name="clang::InjectedClassNameType">
<DisplayString>{*Decl,view(cpp)}</DisplayString>
@@ -261,6 +263,7 @@ For later versions of Visual Studio, no setup is required--> <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==6">{" ",sb}volatile restrict</DisplayString>
<DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==7">{" ",sb}const volatile restrict</DisplayString>
<DisplayString IncludeView="fastQuals">Cannot visualize non-fast qualifiers</DisplayString>
+ <DisplayString Condition="(uintptr_t)Value.Value == 0">Null</DisplayString>
<DisplayString>{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType}{*this,view(fastQuals)}</DisplayString>
<Expand>
<Item Name="Fast Quals">*this,view(fastQuals)</Item>
|